IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> laravel8使用passport认证登录并生成token -> 正文阅读

[开发测试]laravel8使用passport认证登录并生成token

安装passport

composer require laravel/passport

执行迁移命令

php artisan migrate?

创建生成安全访问令牌所需的加密键

php artisan passport:install

App\Models\ApiUser 引 Trait

<?php
? ??
namespace App\Models;
? ??
use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as AuthUser;
? ??
class ApiUser extends AuthUser
{
? ? use HasApiTokens, Notifiable;
}???

App\Providers\AuthServiceProvider

放开? 'App\Models\Model' => 'App\Policies\ModelPolicy' 的注释

boot下?Passport::routes();

<?php
? ??
namespace App\Providers;
? ??
use Laravel\Passport\Passport;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
? ??
class AuthServiceProvider extends ServiceProvider
{
? ? /**
? ? ?* The policy mappings for the application.
? ? ?*
? ? ?* @var array
? ? ?*/
? ? protected $policies = [
? ? ? ? 'App\Models\Model' => 'App\Policies\ModelPolicy',
? ? ];
? ??
? ? /**
? ? ?* Register any authentication / authorization services.
? ? ?*
? ? ?* @return void
? ? ?*/
? ? public function boot()
? ? {
? ? ? ? $this->registerPolicies();
? ??
? ? ? ? Passport::routes();

????//token认证有效期????
????Passport::tokensExpireIn(now()->addHour(2));
????//刷新token认证有效期
????Passport::refreshTokensExpireIn(now()->addDays(30));
????Passport::personalAccessTokensExpireIn(now()->addMonths(6));

? ? }
}?

在config/auth.php中配置

'guards' => [
? ? 'web' => [
? ? ? ? 'driver' => 'session',
? ? ? ? 'provider' => 'users',
? ? ],

????'apiweb'=>[

????????'driver' => 'session',
? ? ? ? 'provider' => 'apiusers',

?????],

? ? 'api' => [
? ? ? ? 'driver' => 'passport',
? ? ? ? 'provider' => 'apiusers',
? ? ? ? // 'hash' => false,
? ? ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],
    'apiusers' => [
        'driver' => 'eloquent',
        'model' => \App\Models\ApiUser::class,
    ],
]

?App\Http\Controllers\Api\LoginController

public function login(Request $request)
{
    try {
        $this->validate($request,[
           'username'=>'required',
           'password'=>'required'
        ]);
    } catch (\Exception $e){
        return response()->json(['code'=>403,'msg'=>'账号或密码不能为空','data'=>[]]);
    }
????// 验证账号和密码
    $bool = auth()->guard('apiweb')->attempt($request->except('/api/login'));
    if($bool)
    {
        $user = auth()->guard('apiweb')->user();
        if($user->click > env('APINUM'))
        {
            return response()->json(['code'=>405,'msg'=>'当日请求次数已达上限','data'=>[]]);
        }
        $token = $user->createToken('api')->accessToken;
        $user->increment('click');
        $data = [
            'expire'=>3600*24*30,
            'token'=>$token
        ];
        return response()->json(['code'=>400,'msg'=>'生成token成功','data'=>$data]);
    }else{
        return response()->json(['code'=>403,'msg'=>'账号或密码不正确','data'=>[]]);
    }
}
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:28:40  更:2022-02-14 21:30:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:28:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码