2016-07-28 3 views
1

Я пытаюсь сделать недействительным (или удалить) токен с 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) и я последовал за все примеры недействительными или удалить маркер, и я не могу до сих пор удалить или аннулировать его ,

+0

По своей природе вы не можете аннулировать токен. Здесь ваши варианты: http://stackoverflow.com/questions/21978658/invalidating-json-web-tokens –

+0

@E_p Я использую эту библиотеку: https://github.com/tymondesigns/jwt-auth, я не используя библиотеку для 'nodejs' – pableiros

+0

Не имеет значения. JWT работает одинаково для любого языка на стороне сервера. Механизм истечения срока действия не существует. Принимаемый ответ в приведенной ссылке указывает, как с этим бороться. –

ответ

0
JWTAuth::invalidate(old token); 
+1

Это не работает. –

Смежные вопросы