gcgov/framework-service-auth-oauth-server

插件实现了一个完整的oauth服务器,用于生成访问和刷新令牌。认证可以通过用户名/密码或第三方Oauth提供者进行。

v1.1.1 2024-02-09 13:25 UTC

This package is auto-updated.

Last update: 2024-09-12 23:21:02 UTC


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

安装

配置

允许的用户

默认情况下,尝试登录但尚未存在于用户数据库集合中的用户将被阻止登录。要启用通过第三方 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' ] );