我有一个Larvel API,它使用Tymon\JWTAuth对用户进行身份验证。
它工作正常。
由于某些原因,我在web.php
中也有一个无保护的路由:
Route::get('myroute', 'MyController@mymethod');
MyController@mymethod的代码如下:
$user = JWTAuth::toUser($request->input('token'));
// I tried also this:
// JWTAuth::setToken($request->input('token'));
// $user = JWTAuth::authenticate();
我在浏览器中使用以下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');
}
}
如何对作为URL参数传递而不是在请求标头中的令牌进行解码?
3条答案
按热度按时间qojgxg4l1#
如果您使用的是jwt-auth dev,旧版本中的toUser方法将丢弃如上所述的错误,请尝试以下操作:
如果用户未通过身份验证,则返回null。
mqxuamgl2#
代替
用途
ki0zmccv3#
我用下面的代码解决了这个问题:
但是,我更愿意直接使用JWTAuth