Laravel 安装 jwt-auth
Posted 安果移不动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 安装 jwt-auth相关的知识,希望对你有一定的参考价值。
命令行执行
composer require tymon/jwt-auth 1.*@rc
config/app.php 新增如下
'providers' => [
...
Tymon\\JWTAuth\\Providers\\LaravelServiceProvider::class,
]
config/auth.php 新增如下
'guards' => [
....
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'auth_admin' => [
'driver' => 'jwt',
'provider' => 'auth_admins'
]
],
'providers' => [
....
'auth_admins' => [
'driver' => 'eloquent',
'model' => Modules\\Admin\\Models\\AuthAdmin::class,
]
],
发布程序包配置文件
php artisan vendor:publish --provider="Tymon\\JWTAuth\\Providers\\LaravelServiceProvider"
会在本地生成这个文件
生成加密密钥
php artisan jwt:secret
会在.env生成一条记录
刚才配置的AuthAdmin 文件
<?php
/**
* @description 管理员模型
* @Date 2021-12-24 0024 11:41
*/
namespace Modules\\Admin\\Modules;
use Illuminate\\Notifications\\Notifiable;
use Modules\\Common\\Models\\BaseModel;
use Tymon\\JWTAuth\\Contracts\\JWTSubject;
use Illuminate\\Foundation\\Auth\\User as Authenticatable;
class AuthAdmin extends Authenticatable implements JWTSubject
use Notifiable;
//配置 保持一直
protected $guard = 'auth_admin';
//隐藏不需要输出
protected $hidden = [
'password'
];
//默认写法 env的key
public function getJWTIdentifier()
return $this->getKey();
/**
* @description 自定义声明。给空即可
* @Date 2021-12-24 0024 11:52
*/
public function getJWTCustomClaims()
return [];
新建LoginService
<?php
/**
* @description 管理员登录
* @Date 2021-12-24 0024 11:57
*/
namespace Modules\\Admin\\Services\\auth;
use Modules\\Admin\\Http\\Requests\\LoginRequest;
use Modules\\Admin\\Services\\BaseApiService;
class LoginService extends BaseApiService
/**
* @description 管理员登录
* @Date 2021-12-24 0024 11:59
*/
public function login(array $data)
if (true == \\Auth::guard('auth_admin')->attempt($data))
return $this->apiSuccess("登录成功");
$this->apiError("用户名或密码错误");
校验登录
<?php
/**
* @description
* @Date 2021-12-24 0024 11:30
*/
namespace Modules\\Admin\\Http\\Controllers\\v1;
use Modules\\Admin\\Http\\Requests\\LoginRequest;
use Modules\\Admin\\Services\\auth\\LoginService;
class LoginController extends BaseApiController
public function login(LoginRequest $request)
return (new LoginService())->login($request->only(['username', 'password']));
以上是关于Laravel 安装 jwt-auth的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 6 中包 tymondesigns/jwt-auth 安装问题
PHP Laravel 5.7 Tymon/jwt-auth 未安装
laravel composer install 无法解决 tymon/jwt-auth 的可安装包
在安装 tymon/jwt-auth 后的 laravel Backend REST API 应用程序中再次遇到 CORS 错误