netsells/sso-client

此包的最新版本(2.1.0)没有可用的许可信息。

Netsells SSO服务器的客户端

2.1.0 2020-04-27 13:52 UTC

This package is auto-updated.

Last update: 2024-09-15 15:53:24 UTC


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中间件创建或更新用户时执行一些代码,您可以在模型上创建ssoUserWasCreatedssoUserWasUpdated方法。

无需数据库设置

您只需设置配置,将auth.providers.users.driver设置为sso。现在您可以使用Auth::user(),它将返回SSO用户而不是Laravel用户。