JWT 身份验证 Laravel
Posted
技术标签:
【中文标题】JWT 身份验证 Laravel【英文标题】:JWT Authentication Laravel 【发布时间】:2020-01-05 20:24:41 【问题描述】:我正在尝试在 laravel 中安装 jwt 身份验证,但我正在使用 laravel 5.8 和 JWT,遵循此 https://tutsforweb.com/restful-api-in-laravel-56-using-jwt-authentication/ ,但显示此错误。
我的vendor/tymon/jwt-auth/src/jwt.php有问题
182 200 行之间
public function parseToken()
if (! $token = $this->parser->parseToken())
throw new JWTException('The token could not be parsed from the request');
return $this->setToken($token);
好吧,我找到了这个建议,我遵循了这个Laravel - JWT Auth The token could not be parsed from the request
public function parseToken($method = 'bearer', $header = 'authorization', $query = 'token')
if (! $token = $this->parseAuthHeader($header, $method))
if (! $token = $this->request->query($query, false))
throw new JWTException('The token could not be parsed from the request', 400);
return $this->setToken($token);
/**
* Parse token from the authorization header.
*
* @param string $header
* @param string $method
*
* @return false|string
*/
protected function parseAuthHeader($header = 'authorization', $method = 'bearer')
$header = $this->request->headers->get($header);
if (! starts_with(strtolower($header), $method))
return false;
return trim(str_ireplace($method, '', $header));
我该如何改变这个?
ErrorException:未定义的属性:Tymon\JWTAuth\JWTAuth::$request 在 C:\laragon\www\ecommerce\vendor\tymon\jwt-auth\src\JWT.php:203
【问题讨论】:
看看这个你会发现它很有帮助***.com/a/51542391/7593083 【参考方案1】:尝试此步骤来设置您的 JWT 登录,
在你的 Laravel 应用中安装 JWT 包
文档:https://jwt-auth.readthedocs.io/en/docs/laravel-installation/
composer require tymon/jwt-auth:dev-develop
或
composer require tymon/jwt-auth:1.0.0-rc.5
在你里面添加JWTMiddleware
App\Http\Middleware
https://github.com/kennethtomagan/laravel-5-api-boilerplate/blob/master/app/Http/Middleware/JWTMiddleware.php
在$routeMiddleware
的App\Http\kernel.php
文件中注册此中间件。
protected $routeMiddleware = [
....
....
'jwt' => \App\Http\Middleware\JWTMiddleware::class,
];
-
设置你的控制器
示例: https://github.com/kennethtomagan/laravel-5-api-boilerplate/blob/master/app/Http/Controllers/Auth/AuthController.php
-
设置您的 API 路由
Route::group(['middleware' => [ 'jwt', 'jwt.auth']], function ()
....
....
);
希望对你有帮助,
工作示例:https://github.com/kennethtomagan/laravel-5-api-boilerplate
【讨论】:
以上是关于JWT 身份验证 Laravel的主要内容,如果未能解决你的问题,请参考以下文章