Hyperf插件之passport认证插件richard8768/hyperf-passport

本文介绍了如何使用richard8768/hyperf-passport插件在Hyperf中实现OAuth2.0授权,包括安装、配置、用户认证、授权模式以及接口调用等详细步骤。
摘要由CSDN通过智能技术生成

richard8768/hyperf-passport

hyperf 的 hyperf-passport 组件,支持对多种用户进行登录授权,支持Oauth2.0的四种授权模式以及laravel passport的personal access token模式,目前所有授权模式已完全可用。
本组件参考了 laravel 的 passport 组件设计,使用体验大体和 laravel 的 passport 差不多。

任何问题请加QQ提问:444626008

安装前的准备 - before install

PHP>=7.4

安装与发布 - install && publish

$ composer require richard8768/hyperf-passport

$ php bin/hyperf.php vendor:publish 96qbhy/hyperf-auth

$ php bin/hyperf.php vendor:publish hyperf-ext/encryption

$ php bin/hyperf.php vendor:publish hyperf-ext/hashing

$ php bin/hyperf.php vendor:publish hyperf/view

$ php bin/hyperf.php vendor:publish hyperf/session

$ php bin/hyperf.php vendor:publish richard8768/hyperf-passport

配置 - configuration

使用 php bin/hyperf.php gen:key 命令来生成密钥,并将KEY值复制到文件 config/autoload/encryption.php中的env(‘AES_KEY’, ‘place_to_hold_key’)

编辑文件config/autoload/view.php配置视图默认引擎:

<?php
declare(strict_types=1);

use Hyperf\View\Engine\PlatesEngine;
use Hyperf\View\Mode;

return [
    // 使用的渲染引擎
    'engine' => PlatesEngine::class,
    // 不填写则默认为 Task 模式,推荐使用 Task 模式
    'mode' => Mode::TASK,
    'config' => [
        // 若下列文件夹不存在请自行创建
        'view_path' => BASE_PATH . '/storage/view/',
        'cache_path' => BASE_PATH . '/runtime/view/',
    ],
];
?>

在文件 config/autoload/middlewares.php中添加全局中间件

<?php
return [
    // 这里的 http 对应默认的 server name,如您需要在其它 server 上使用 Session,需要对应的配置全局中间件
    'http' => [
        \Hyperf\Session\Middleware\SessionMiddleware::class,
    ],
];
?>

编辑文件 config/autoload/passport.php

在文件中引入填写自己的session用户登录URL

‘session_user_login_uri’ => ‘/your/user-login/path’,

以下为passport.php文件样板

<?php

declare(strict_types=1);
return [
    'session_user_login_uri' => '/user_login',
    'key_store_path' => 'storage',
    'client_uuids' => false,
    'key' => 'E3Wxizr8gUXuBuyG7CecmGX9E9lbRzdFmqQpG2yP85eDuXzqOj',
    'token_days' => null,
    'refresh_token_days' => null,
    'person_token_days' => null,
    'database_connection' => env('DB_CONNECTION', 'default'),
    'is_revoke_user_others_token' => true,//when user login if revoke user's all token except current one
];

编辑文件 config/autoload/exceptions.php

在文件中引入session中间件验证的异常处理器和passport中间件验证的异常处理器

Richard\HyperfPassport\Exception\Handler\SessionAuthenticationExceptionHandler::class
Richard\HyperfPassport\PassportExceptionHandler::class

用户也可以定义自己的PassportExceptionHandler

以下为exceptions.php文件样板

<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */
return [
    'handler' => [
        'http' => [
            Hyperf\HttpServer\Exception\Handler\HttpExceptionHandler::class,
            App\Exception\Handler\AppExceptionHandler::class,
            \Richard\HyperfPassport\Exception\Handler\SessionAuthenticationExceptionHandler::class,
            //you can use your own exception handler instead of \Richard\HyperfPassport\PassportExceptionHandler::class
            //App\Exception\Handler\AppPassportExceptionHandler::class,//user defined PassportExceptionHandler to replace below one
            \Richard\HyperfPassport\PassportExceptionHandler::class,      
        ],
    ],
];

编辑文件 config/autoload/auth.php

在文件中引入Provicer和Guard

use Richard\HyperfPassport\PassportUserPro

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jobsen123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值