Fab*_*bry 5 authentication jwt laravel laravel-5 jwt-auth
我有一个使用 Tymon\JWTAuth 对用户进行身份验证的 Larvel API。
它工作正常。
出于某些原因,我还有一条不受保护的路线web.php:
Route::get('myroute', 'MyController@mymethod');
Run Code Online (Sandbox Code Playgroud)
MyController@mymethod 的代码如下:
$user = JWTAuth::toUser($request->input('token'));
// I tried also this:
// JWTAuth::setToken($request->input('token'));
// $user = JWTAuth::authenticate();
Run Code Online (Sandbox Code Playgroud)
我在浏览器中使用这个 url 调用路由: /myroute?token=eyJ0eXAiOiJKV1QiLCJhbGci....
问题是我在 JWT.php 中有一个异常:
Tymon \ JWTAuth \ Exceptions \ JWTException 需要一个令牌
JWT.php
protected function requireToken()
{
if (! $this->token) {
throw new JWTException('A token is required');
}
}
Run Code Online (Sandbox Code Playgroud)
如何解码作为 URL 参数传递而不是在请求标头中的令牌?
我使用这段代码解决了它:
use Namshi\JOSE\SimpleJWS;
$secret = config('jwt.secret');
$jws = SimpleJWS::load($token);
if (!$jws->isValid($secret)) {
return response()->json([], 401); // unauthorized
}
$payload = $jws->getPayload();
$account = Account::find($payload["account"]["id"]);
Run Code Online (Sandbox Code Playgroud)
不过我更愿意直接使用 JWTAuth
| 归档时间: |
|
| 查看次数: |
7060 次 |
| 最近记录: |