mercredi 30 septembre 2015

Laravel Token Signature could not be verified

I'm using Laravel/Lumen as an API for the backend of a webapp and run into a hiccup.

In an example I have a route that does not need the user to be authenticated. But I do want to check in the routes controller if the user visiting has a valid token.

So I wrote the following:

    if ($tokenFetch = JWTAuth::parseToken()->authenticate()) {
        $token = str_replace("Bearer ", "", $request->header('Authorization'));
    } else {
        $token = '';
    }

I believe the above will check the Bearer token is valid else it will return a blank variable.

The following is my entire Controller.

public function show($url, Request $request)
    {

        if ($tokenFetch = JWTAuth::parseToken()->authenticate()) {
            $token = str_replace("Bearer ", "", $request->header('Authorization'));
        } else {
            $token = 'book';
        }
        return response()->json(['token' => $token]);
    }

The Problem

If I a pass in a valid Token Bearer, it returns the token but if I pass in an invalid one I get the following error:

TokenInvalidException in NamshiAdapter.php line 62:

Token Signature could not be verified.

If I don't pass a token at all:

JWTException in JWTAuth.php line 195:

The token could not be parsed from the request

Is there a way to check if a token is passed and if it has then check if its valid, but also if one has not been passed then return a blank return?



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/1KS2Ko3
via IFTTT

Aucun commentaire:

Enregistrer un commentaire