Я пытаюсь сделать недействительным (или удалить) токен с JWT
, но я не могу этого добиться. Во-первых, я сделал что-то вроде этого ответа говорит Logout issue with Laravel JWT-auth authentication:Как недействить токен JWT PHP
JWTAuth::invalidate(JWTAuth::getToken())):
Но я получаю эту ошибку:
Non-static method Tymon\JWTAuth\JWT::invalidate() should not be called statically, assuming $this from incompatible context
Тогда я что-то вроде этого:
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'));
}
...
}
Но я все еще можете использовать токен для другого запроса, и я не могу удалить или аннулировать его.
Что я делаю неправильно, чтобы аннулировать токен?
Edit:
Я прочитал еще вопросы здесь и выпускает почтовые из репо JWT на github (this is the library I'm using) и я последовал за все примеры недействительными или удалить маркер, и я не могу до сих пор удалить или аннулировать его ,
По своей природе вы не можете аннулировать токен. Здесь ваши варианты: http://stackoverflow.com/questions/21978658/invalidating-json-web-tokens –
@E_p Я использую эту библиотеку: https://github.com/tymondesigns/jwt-auth, я не используя библиотеку для 'nodejs' – pableiros
Не имеет значения. JWT работает одинаково для любого языка на стороне сервера. Механизм истечения срока действия не существует. Принимаемый ответ в приведенной ссылке указывает, как с этим бороться. –