equidna/caronte-client

Caronte认证客户端

1.0.5 2024-09-23 21:47 UTC

This package is auto-updated.

Last update: 2024-09-24 16:39:08 UTC


README

Caronte是一个基于JWT令牌的认证系统,由Laravel编写。此客户端消耗Caronte API以对其他系统进行认证,并提供两个中间件来验证用户访问。

配置

Caronte使用环境变量来自定义配置,以下是可以配置的选项。

路由

中间件

ValidateSession

主类:Equidna\Caronte\Http\Middleware\ValidateSession 别名:Caronte.ValidateSession

验证用户是否使用有效的JWT令牌进行了认证,并且与配置中提供的CARONTE_APP_ID关联的任何权限相关。

Route::put('/dashboard', function (string $id) { // ... })->middleware('Caronte.ValidateSession');

如果令牌已过期,则在验证过程中自动续订,在这种情况下,新的令牌将可在名为new_token的响应头中找到。

ValidateRoles

主类:Equidna\Caronte\Http\Middleware\ValidateRoles 别名:Caronte.ValidateRoles 参数:要验证的权限的逗号分隔列表或数组

验证用户是否具有提供的任何角色。root 角色始终添加到列表中,因此具有root角色的用户将始终被视为有效。

Route::put('/users', function (string $id) { // ... })->middleware('Caronte.ValidateRoles:administrator,manager');

辅助工具

此包提供辅助类以简化与用户的一些常见操作,所有方法都设计为静态调用。

Equidna\Caronte\Helpers\CaronteUserHelper

  • getUserName(string $uri_user):string 返回与关联URI关联的用户名称

  • getUserEmail(string $uri_user):string 返回与关联URI关联的用户电子邮件

  • getUserMetadata(string $uri_user, string $key):string 返回提供的键和uri_user的元数据值

Equidna\Caronte\Helpers\PermissionHelper

  • hasApplication():bool 验证当前用户是否与任何与CARONTE_APP_ID关联的角色相关

  • hasRoles(mixed $roles):bool 验证当前用户是否具有提供的任何角色 $roles可以提供为值的逗号分隔列表或数组,root角色始终添加到列表中,因此具有root角色的用户将始终返回true。

外观

Equidna\Caronte

  • getToken():Plain 返回表示正在使用的令牌的Lcobucci\JWT\Token\Plain

  • getUser():stdClass|null 返回表示为令牌签发的用户的stdClass或null,如果解码过程中出现任何错误

  • getRouteUser():string 返回路由中的{uri_user}部分或空字符串,如果没有在路由中找到{uri_user}

  • saveToken(string $token_str):void @param $token*string 将提供的令牌字符串存储在服务器的tokens文件夹中,并将文件id存储在名为*caronte_token*的cookie中

  • clearToken():void 清除caronte_token cookie并删除存储用户令牌的关联文件

  • setTokenWasExchanged():void 设置一个标志,指示令牌在验证过程中已过期并已交换

  • tokenWasExchanged():bool 如果在验证过程中令牌已交换,则返回true

  • echo(string $message):string 返回提供的消息