maksatsaparbekov / kuleshov-auth
一个用于与外部身份验证服务集成的Laravel包。该包确保与第三方系统的无缝同步,以便通过安全的令牌进行用户登录和注册。
Requires
- awobaz/compoships: ^2.2
Requires (Dev)
- guzzlehttp/guzzle: 8.0.x-dev
- pestphp/pest: 3.x-dev
This package is auto-updated.
Last update: 2024-09-18 07:59:53 UTC
README
这是一个用于Laravel的包,旨在与外部身份验证服务集成,它提供与第三方系统的无缝同步,以便使用特殊令牌安全地访问用户登录和注册。
安装
通过Composer
composer require maksatsaparbekov/kuleshov-auth:dev-main
php artisan vendor:publish --provider="Maksatsaparbekov\KuleshovAuth\KuleshovAuthServiceProvider" --tag=config --force
在您的本地目录中,config将创建一个kuleshov-auth.php文件。您可以在此文件中更改配置参数,以根据您的需求配置KuleshovAuth包的行为。
配置文件包含以下关键参数
url - 包用于执行外部请求的URL地址。默认设置为https://example.com。security_key - 用于签名请求或安全目的的安全密钥。默认值 - your-security-key。policies - 这里可以指定用于授权应用程序中操作的政策类。chat_room - 指定用于聊天室的自己的政策类。observers - 在此部分中,您可以指定将响应应用程序中各种事件的观察者(observers)。chat_room_message - 指定聊天室消息的观察者类。routes - 与路由相关联的设置,包括应用于包路由的中介软件(middleware)。middleware - 应用于路由的中介软件数组。默认包括auth.access_token和resolveModel。
在您的.env文件中设置第三方服务的详细信息
KULESHOV_AUTH_URL=https://example.com/api KULESHOV_AUTH_SECURITY_KEY=SECURITY
##使用 为了避免与您的User模型中的HasApiTokens Sanctum trait冲突,在集成Kuleshov Auth时,您可以简单地注释或删除HasApiTokens trait,如果它对您的应用程序功能不是必需的。相反,您将使用Kuleshov Auth提供的AuthService trait来处理身份验证。要在您的User模型中使用AuthService
use Maksatsaparbekov\KuleshovAuth\Traits\AuthService;
class User extends Authenticatable { // use HasApiTokens use AuthService; }
迁移
执行迁移以创建必要的表
php artisan migrate
最后一步 - 使用Eloquent模型事件
使用
$user = User::where('phone', $phone)->first(); $user->update([ 'password' => Hash::make($password), ]);
而不是直接在查询结果上使用update方法:$user = User::where('phone', $phone)->update([ 'password' => Hash::make($password), ]);
这种方法更可取,因为它允许首先提取模型实例,然后更新它。这样做很重要,因为这样可以触发Eloquent模型事件,如saving、saved、updating和updated,而第二种方法则不会发生这些事件。
聊天
如果您需要更详细的文档,可以为您的项目生成Swagger文档。安装(composer require "darkaonline/l5-swagger")并根据文档进行设置。打开l5-swagger.php文件并添加以下行
'annotations' => [
base_path('vendor/maksatsaparbekov/kuleshov-auth/src/Http/Controllers'), // добавьте это
base_path('vendor/maksatsaparbekov/kuleshov-auth/src/Models'), // добавьте это],
使用Chattable; <-在模型内添加此行
应用该特性的模型必须能够在逻辑上参与消息交换。例如,Application 模型可以是聊天可用的。这种方法允许模型预先通过 Eloquent Laravel 的 with() 方法加载相关数据,如聊天室。例如,Model::with('chatRooms')
提取与模型关联的所有聊天室列表,而 Model::with('senderChatRoom')
获取为该模型创建的认证用户的聊天室。
getTitleAttribute 方法
此方法返回聊天标题。
说明
getTitleAttribute
方法用于从 chattable
模型获取聊天标题。如果您有自己的 car_title
属性,它将用于返回聊天标题。否则,将使用默认属性。
使用示例
public function getTitleAttribute() { if ($this->chattable->car_title){ return $this->chattable->car_title; } return $this->chattable?->car_title; }
getTitleAttribute 方法
此方法返回聊天标题。
说明
getTitleAttribute
方法用于从 chattable
模型获取聊天标题。如果您有自己的 car_title
属性,它将用于返回聊天标题。否则,将使用默认属性。
使用示例
public function getTitleAttribute() { if ($this->chattable->car_title){ return $this->chattable->car_title; } return $this->chattable?->car_title; }
然后执行命令:php artisan l5-swagger:generate。此命令为您生成文档。更多信息可以在 GitHub 上的 L5 Swagger 页面找到 https://github.com/DarkaOnLine/L5-Swagger
Kuleshov Auth
一个用于与外部身份验证服务集成的 Laravel 扩展包,提供与第三方系统无缝同步的用户登录和注册功能,利用自定义令牌实现安全访问。
安装
通过 Composer
composer require maksatsaparbekov/kuleshov-auth:dev-main
配置
php artisan vendor:publish --provider="Maksatsaparbekov\KuleshovAuth\KuleshovAuthServiceProvider" --tag="config" php artisan vendor:publish --tag=kuleshov-auth-policies
在 .env 文件中设置第三方服务详情:AUTH_SERVICE_URL=https://example.com/api PROJECT_SECURITY_KEY=SECURITY
在您的 User 模型中使用 AuthService
use Maksatsaparbekov\KuleshovAuth\Traits\UserTrait;
class User extends Authenticatable { use AuthService; }
迁移
运行迁移以创建必要的表
php artisan migrate
最后,使用 eloquent 模型事件
$user = User::where('phone', $phone)->first(); $user->update([ 'password' => Hash::make($password), ]); 而不是 $user = User::where('phone', $phone)->update([ 'password' => Hash::make($password), ]);