mindtwo / px-user-laravel
用于处理Laravel的PX用户认证的包。
Requires
- php: ^8.0|^8.1|^8.2
- laravel/framework: ^9.0|^10.0|^11.0
- mindtwo/laravel-decorator: ^3.0
- mindtwo/two-tility: ^0.2
Requires (Dev)
- larastan/larastan: ^2.0
- laravel/pint: ^1.2
- laravel/sanctum: ^3.2
- mockery/mockery: ^1.5
- orchestra/testbench: ^7.15|^8.0|^9.0
- pestphp/pest: ^1.23|^2.0
- pestphp/pest-plugin-laravel: ^1.3|^2.0
Suggests
- laravel/sanctum: The package provides a custom AuthToken Model which may be used by your application
- dev-master
- 2.7.2
- 2.7.1
- 2.7.0
- 2.6.0
- 2.5.2
- 2.5.1
- 2.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.2
- 2.3.1
- 2.3
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0
- 1.9.2.x-dev
- 1.9.1
- 1.9
- 1.8.1
- 1.8
- 1.7.1
- 1.7
- 1.6.1
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5
- 1.4
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3
- 1.2.1
- 1.2
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1
- 1.0
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7
- 0.6.1
- 0.6
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4
- 0.3.0
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2
- 0.1
- dev-feature/eip-client
- dev-update-2.0.1
- dev-wip
- dev-feature/cache-admin-request
- dev-feature/make-request-throw-by-default
This package is auto-updated.
Last update: 2024-09-19 12:23:34 UTC
README
安装
您可以通过composer安装此包
composer require mindtwo/px-user-laravel
如何使用?
发布配置
要发布模块配置文件,只需运行以下命令
php artisan vendor:publish px-user
这会将 px-user.php
配置文件发布到您的项目配置文件夹。
配置包
之后,您应该在.env文件中添加以下键
- PX_USER_M2M
- PX_USER_TENANT
- PX_USER_DOMAIN
这些键将自动填充相应的配置值。
在您的配置中,您还可以找到以下键
stage
它将使用您的APP_ENV变量,以及 px_user_cache_time
,它简单地决定了包允许缓存用户数据多长时间(以分钟为单位)。
准备用户模型
首先,您需要向您的用户表添加一个名为 px_user_id
的列。此值用于检索缓存的用户数据。
这是必要的,因为PX用户只能允许我们缓存用户数据,而不能将其存储在数据库中,我们依赖于缓存数据。这是使用Laravel Cache
门面完成的。为了无缝地将数据集成到您的 User
模型中使用,该包提供了一个特质。
use mindtwo\PxUserLaravel\Traits\UseUserDataCache; class User extends Model { use UseUserDataCache; }
此特质重写了模型的 getAttribute($name)
方法,因此即使您的用户表中没有lastname列,您也可以使用 $user->lastname
。
登录用户
要登录用户,该包提供了一个名为 PxUserLoginAction
的操作。在控制器中使用此操作以从PX用户API检索用户数据。
以下是一个此类控制器的示例
use App\Http\Controllers\Controller; use Exception; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use mindtwo\PxUserLaravel\Actions\PxUserLoginAction; class LoginController extends Controller { public function __construct( protected PxUserLoginAction $pxUserLoginAction, ) { } /** * @param Request $request * @return \Illuminate\Http\JsonResponse * * @throws Exception */ public function login(Request $request) { // received token auth data via PX User widgets $tokenData = $request->only([ 'access_token', 'access_token_lifetime_minutes', 'access_token_expiration_utc', 'refresh_token', 'refresh_token_lifetime_minutes', 'refresh_token_expiration_utc', ]); $result = $this->pxUserLoginAction->execute($tokenData); return response()->json(['success' => $result]); } }
如果 $result
的值为true,您现在可以通过Laravel的 Auth
门面访问已认证的用户。
更新日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 info@mindtwo.de 反馈,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。请参阅 许可证文件 了解更多信息。