gcgov / framework-service-auth-oauth-server
插件实现了一个完整的oauth服务器,用于生成访问和刷新令牌。认证可以通过用户名/密码或第三方Oauth提供者进行。
v1.1.1
2024-02-09 13:25 UTC
Requires
- php: >=8.1
- andrewsauder/json-deserialize: ^2.4.2
- hybridauth/hybridauth: ^3.10
- lcobucci/clock: ^2.0
- lcobucci/jwt: ^4.0
README
扩展 gcgov/framework 的服务
主要用途
- 实现一个完整的 Oauth 服务以进行应用程序认证。提供通过第三方 Oauth 提供者或用户名/密码数据库进行用户认证的功能。
对应用程序的影响
- 路由器
- 添加路由
- 添加路由
/.well-known/jwks.json
- 提供前端验证应用程序生成的令牌的端点 - 添加路由
/.well-known/openid-configuration
- 提供公开的 oauth 配置端点 - 添加路由
/auth/fileToken
- 创建一个短期有效的访问令牌,可用于支持的路径的 URL 中 - 添加路由
/auth/out
- 终止用户的刷新令牌,并删除任何会话和cookie数据 - 添加路由
/auth/authorize
- GET 和 POST 用于用户认证和生成访问和刷新令牌 - 添加路由
/auth/hybridauth/{provider}
- 第三方 Oauth 提供者的返回端点
- 添加路由
- 添加认证守卫
- 所有应用程序中具有
authentication=true
的路由都必须通过此守卫。检查 HTTP 认证头或具有allowShort
的路由的 URL 参数fileAccessToken
。
- 所有应用程序中具有
- 添加路由
安装
- 需要使用 Composer https://packagist.org.cn/packages/gcgov/framework-service-auth-oauth-server
- 将命名空间
\gcgov\framework\services\authoauth
添加到\app\app->registerFrameworkServiceNamespaces()
配置
允许的用户
默认情况下,尝试登录但尚未存在于用户数据库集合中的用户将被阻止登录。要启用通过第三方 Oauth 提供者认证的任何用户的登录,设置配置变量 blockNewUsers=false
。当 blockNewUsers=false
时,任何通过第三方 Oauth 提供者成功认证的用户将被自动添加到数据库用户配置中
$oauthConfig = oauthConfig::getInstance(); $oauthConfig->setBlockNewUsers( false );
新用户默认角色
当 blockNewUsers=false
时,新用户将被自动添加到用户数据库集合中。要设置创建时应分配给新用户的默认角色,向 setBlockNewUsers
方法提供角色。
$oauthConfig = oauthConfig::getInstance(); $oauthConfig->setBlockNewUsers( false, [ 'Role1.Read', 'Role2.Read', 'Role2.Write' ] );