maksatsaparbekov/kuleshov-auth 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

maksatsaparbekov/kuleshov-auth

Composer 安装命令:

composer require maksatsaparbekov/kuleshov-auth

包简介

A Laravel package for integrating with external authentication services.

README 文档

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

##Использование Чтобы избежать конфликтов с трейтом HasApiTokens Sanctum в вашей модели User при интеграции с пакетом Kuleshov Auth, вы можете просто закомментировать или удалить трейт HasApiTokens, если он не нужен для функциональности вашего приложения. Вместо этого вы будете использовать трейт AuthService, предоставляемый Kuleshov Auth, для обработки аутентификации. Для использования AuthService в вашей модели User:

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, что не происходит при использовании второго подхода.

Chats

Если вы хотите получить более подробную документацию, вы можете сгенерировать документацию 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'), // добавьте это],

use 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 Эта команда сгенерирует документацию для вас. Подробнее можно узнать на странице L5 Swagger на GitHub https://github.com/DarkaOnLine/L5-Swagger

Kuleshov Auth

A Laravel package for integrating with external authentication services, providing seamless synchronization with third-party systems for user login and registration, leveraging custom tokens for secure access.

Installation

Via Composer:

composer require maksatsaparbekov/kuleshov-auth:dev-main

Configuration

php artisan vendor:publish --provider="Maksatsaparbekov\KuleshovAuth\KuleshovAuthServiceProvider" --tag="config" php artisan vendor:publish --tag=kuleshov-auth-policies

Set your third-party service details in your .env: AUTH_SERVICE_URL=https://example.com/api PROJECT_SECURITY_KEY=SECURITY

To use the AuthService in your User model:

use Maksatsaparbekov\KuleshovAuth\Traits\UserTrait;

class User extends Authenticatable { use AuthService; }

Migrations

Run the migrations to create necessary tables:

php artisan migrate

last thing is to fire eloquent model events use:

$user = User::where('phone', $phone)->first(); $user->update([ 'password' => Hash::make($password), ]); rather then $user = User::where('phone', $phone)->update([ 'password' => Hash::make($password), ]);

maksatsaparbekov/kuleshov-auth 适用场景与选型建议

maksatsaparbekov/kuleshov-auth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 491 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 02 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 maksatsaparbekov/kuleshov-auth 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 maksatsaparbekov/kuleshov-auth 我们能提供哪些服务?
定制开发 / 二次开发

基于 maksatsaparbekov/kuleshov-auth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 491
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-02-08