【发布时间】:2016-12-03 03:41:31
【问题描述】:
我正在尝试使JWT 中的令牌无效(或删除),但我无法实现。首先我做了类似Logout issue with Laravel JWT-auth authentication:
JWTAuth::invalidate(JWTAuth::getToken())):
但我收到此错误:
不应静态调用非静态方法 Tymon\JWTAuth\JWT::invalidate(),假设 $this 来自不兼容的上下文
然后我做了这样的事情:
use Illuminate\Http\Request;
use Tymon\JWTAuth\JWTAuth;
class AuthController extends Controller
{
protected $jwt;
public function __construct(JWTAuth $jwt)
{
$this->jwt = $jwt;
}
public function invalidateToken(Request $request)
{
$this->jwt->parseToken()->invalidate();
return response()->json(array('message' => 'log out'));
}
...
}
但我仍然可以将令牌用于另一个请求,并且无法删除或使其无效。
我做错了什么使令牌无效?
编辑:
我从这里阅读了另一个问题,并在github (this is the library I'm using) 上从 JWT 的回购中发布了帖子,我按照所有示例使令牌无效或删除,但我仍然无法删除或使其无效。
【问题讨论】:
-
从本质上讲,您不能使令牌无效。您可以在这里选择:stackoverflow.com/questions/21978658/…
-
@E_p 我正在使用这个库:github.com/tymondesigns/jwt-auth,我没有使用
nodejs的库 -
没有区别 JWT 适用于任何服务器端语言。没有使令牌过期的机制 我提供的链接中接受的答案告诉您如何处理它。
-
@E_p 你说得对,谢谢!!
-
这是一个关于 JWT 撤销的有趣 POV:dinochiesa.net/?p=1388