laravel接口开发JWTAuth

 2023-09-17 阅读 29 评论 0

摘要:一、安装配置 1、使用composer安装 composer require tymon/jwt-auth 1.*@rc 2、配置 2.1发布配置文件 # 这条命令会在 config 下增加一个 jwt.php 的配置文件 php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider" 2.2

一、安装配置

1、使用composer安装

composer require tymon/jwt-auth 1.*@rc

2、配置

 2.1发布配置文件

# 这条命令会在 config 下增加一个 jwt.php 的配置文件
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

 2.2 生成加密密钥

# 这条命令会在 .env 文件下生成一个加密密钥,如:JWT_SECRET=foobar
php artisan jwt:secret

 2.3 更新用户模型

use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;class User extends Authenticatable implements JWTSubject
{use Notifiable;public function getJWTIdentifier(){return $this->getKey();}public function getJWTCustomClaims(){return [];}}

laravel请求第三方接口? 2.4 注册两个Facade(config/app.php)

'aliases' => [...// 添加以下两行'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth','JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory',
],

 辅助函数auth()、Facade类JWTAuth

 2.5 修改auth.php

'guards' => ['web' => ['driver' => 'session','provider' => 'users',],'api' => ['driver' => 'jwt',        // 原来是 token 改成jwt'provider' => 'users',],
],

二、JWTToken详解

token创建、获取、检验、解析、删除(获取)、刷新、使用

创建:基于账号密码、模型、模型id、辅助函数

$id = 1;
$arr = ['username'=>'admin','username'=>'admin'];1、JWTAuth
JWTAuth::attempt($arr);2、fromUser or fromSubject
JWTAuth::fromUser($user);3、auth()1、auth()->login($user);2、auth()->tokenById($id);

获取

1、JWTAuth
JWTAuth::parseToken();
JWTAuth::parseToken()->getToken();
JWTAuth::getToken();2、Auth
auth()->getToken();

检验(合法性、有效性)

1、JWTAuth
JWTAuth::setToken($token);
JWTAuth::setToken($token)->check();
JWTAuth::parseToken()->check();2、auth()
auth('api')->check()

解析

1、JWTAuth
JWTAuth::parseToken();
JWTAuth::parseToken()->toUser();
JWTAuth::parseToken()->authenticate(); // only、attr2、auth()
auth()->user() // only、attr
auth()::parseToken()->toUser();

删除

1、JWTAuth
JWTAuth::parseToken()->invalidate(); 2、auth()
auth()->logout();

刷新

1、JWTAuth
JWTAuth::parseToken()->refresh();

使用

1、url:?token=你的token2、header 中,建议用这种,因为在 https 情况下更安全:Authorization:Bearer 你的token

laravel手册。 

三、JWTAuth调用异常

php artisan key:generate
php artisan jwt:secret
php artisan config:clear
php artisan config:cache

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/72198.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息