faysoft / fayoauth
Faycms第三方登录模块
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/faysoft/fayoauth
Requires
- faysoft/cms: *
This package is not auto-updated.
Last update: 2025-10-26 09:37:32 UTC
README
此模块仅完成第三方登录信息获取,不涉及创建本地用户等业务逻辑操作。
调用代码
//获取OAuth实例 $oauth = OauthService::getInstance( 'weixin',//登录方式代码,对应services\oauth下的文件夹名 {$app_id},//App Id {$app_secret}//App Secret ); //获取openId $open_id = $oauth->getOpenId(); //获取第三方用户 $user = $oauth->getUser(); //获取第三方用户字段 $user->getNickName();//获取第三方昵称 $user->getAvatar();//获取第三方头像链接 $user->getOpenId();//获取第三方对外id(Open Id) $user->getUnionId();//获取第三方Union Id(微信登录可能会有这个值) $user->getParam('city');//获取指定字段,根据第三方登录方式不同,字段有所差异 $user->getParams();//获取所有第三方返回的用户字段
代码介绍
ClientAbstract用于获取Access Token,state值校验等操作AccessTokenAbstractAccess Token实例,可通过此实例获取用户信息OauthService由于不同第三方登录参数略有区别,用OauthService来统一调用入口getAccessToken()获取Access Token(AccessTokenAbstract实例)getUser()获取第三方用户信息(返回UserAbstract实例)getOpenId()获取用户openId
UserAbstract第三方返回的用户信息各有不同,用此类来统一用户信息获取方法getAccessToken()获取Access Token值(字符串)getNickName()获取用户昵称getOpenId()获取用户openIdgetUnionId()获取用户UnionId。目前好像就微信有这个值getAvatar()获取用户头像getParams()获取所有原生第三方用户信息getParam($name)根据原生第三方用户信息字段获取用户信息__get()可以通过魔术方法调用getParam()ArrayAccess可以通过数组的方式调用getParam()
StateManager用于管理state
总结:
Client和AccessToken类用于实现第三方登录。OauthService和User类用于统一调用和返回数据格式。
扩展登录方式时,需要实现AccessTokenAbstract, ClientAbstract, OauthService, UserAbstract类。