承接 mindtwo/px-user-laravel 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

mindtwo/px-user-laravel

最新稳定版本:4.0.1

Composer 安装命令:

composer require mindtwo/px-user-laravel

包简介

Package for handling PX User authentication for Laravel.

README 文档

README

Latest Version on Packagist Software License Total Downloads

Installation

You can install the package via composer:

composer require mindtwo/px-user-laravel

How to use?

Publish config

To publish the modules config file simply run

php artisan vendor:publish px-user

This publishes the px-user.php config file to your projects config folder.

Configure the package

After that you should add the following keys to your .env-file:

  • PX_USER_M2M
  • PX_USER_TENANT
  • PX_USER_DOMAIN

This keys will auto populate the respective config values.

Inside your configuration you will also find the keys:

stage which will use your APP_ENV variable and px_user_cache_time which simply determines for how long the package is allowed to cache the user data in minutes.

Prepare the User model

First you will need to add a column px_user_id to your users table. This value is used to retrieve the cached user data.

This is necessary since PX User only allows us to cache the user data and not to store them inside a database, we rely on caching the data. This is done using Laravel Cache facade. To seemlessly integrate the data for use with your User model the package provides a trait.

use mindtwo\PxUserLaravel\Traits\UseUserDataCache;

class User extends Model
{
    use UseUserDataCache;
}

This trait overrides the models getAttribute($name) method so you can use $user->lastname even though there is no lastname column inside your users table.

Login a user

To login a user the package provides an action called PxUserLoginAction. Utilize this action inside a controller to retrieve the user data from PX Users api.

An example for such a controller is given below:

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

If the value for $result is true you can now access authenticated user via Laravel's Auth facade.

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email info@mindtwo.de instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-11-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固