netsells / sso-client
此包的最新版本(2.1.0)没有可用的许可信息。
Netsells SSO服务器的客户端
2.1.0
2020-04-27 13:52 UTC
Requires
- php: ^7.1
- firebase/php-jwt: ^5.0
Requires (Dev)
- php: ^7.1
- firebase/php-jwt: ^5.0
- laravel/framework: ^5.5
README
Netsells SSO的客户端。该客户端消费来自Pomerium的头部信息,并将其与Laravel的认证系统集成。
安装
添加到composer
composer require netsells/sso-client
添加以下环境变量
POMERIUM_PUBLIC_KEY=
这是base64编码的公钥。它用于确定JWT数据来自Pomerium而不是攻击者。
用户提供者设置
SSO客户端有两种可用模式,它可以使用您现有的认证提供者(例如Laravel eloquent auth)或者您可以使用SSO认证用户提供者(通常在您不想存储用户信息,只想保护网站时使用)。
现有的eloquent设置
SSO中间件期望您的认证配置被正确配置。特别是auth.providers.users.model
,因为这将是代表您填充和认证的模型。
默认情况下,如果不存在,将根据SSO服务器发送的电子邮件创建用户。如果您希望向用户模型(或任何其他模型)添加更多信息,您应该在AppServiceProvider中添加以下调用。查看SSOUser DTO以了解您可以从SSO服务器获取哪些信息。
SSOClient::setUserCallback(function ($user, \Netsells\SSOClient\User $data) { $user->first_name = $data->first_name; return $user; });
如果您希望通过SSO中间件创建或更新用户时执行一些代码,您可以在模型上创建ssoUserWasCreated
和ssoUserWasUpdated
方法。
无需数据库设置
您只需设置配置,将auth.providers.users.driver
设置为sso
。现在您可以使用Auth::user()
,它将返回SSO用户而不是Laravel用户。