maksatsaparbekov/kuleshov-auth

一个用于与外部身份验证服务集成的Laravel包。该包确保与第三方系统的无缝同步,以便通过安全的令牌进行用户登录和注册。

v2.x-dev 2024-09-13 13:12 UTC

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), ]);