Ever Adm
Ever Adm

Reputation: 61

How to get user from JWTAuth with token in laravel 5.5

I'm going to use JWTAuth to create token from a model. So I used this method:

$token = JWTAuth::fromUser($user);

In my api routes I have:

Route::post('login', 'AuthController@login');

Route::group([

    'middleware' => 'jwt.auth',
    'prefix' => 'auth'

], function ($router) {

    Route::post('logout', 'AuthController@logout');
    Route::post('refresh', 'AuthController@refresh');
    Route::get('me', 'AuthController@me');
});

Now I should have access to get user from JWTAuth. Then I use:

$user = JWTAuth::parseToken()->authenticate();

But it returns false.

Upvotes: 0

Views: 8549

Answers (2)

Kaushik shrimali
Kaushik shrimali

Reputation: 1228

If you need to get current userid, from header token then try it. Tested

use Tymon\JWTAuth\Facades\JWTAuth;

   protected function getCurrentUser()
    {
        return JWTAuth::parseToken()->authenticate()->id;
    }

Upvotes: 0

Awadhesh Kumar
Awadhesh Kumar

Reputation: 420

You should use like in api.php

Route::post('user', 'UserController@createUser');

and In your controller

public function getAuthUser(Request $request) {
        try {

            if (!$user = JWTAuth::toUser($request->token)) {
                return response()->json(['code' => 404, 'message' => 'user_not_found']);
            } else {

                $user = JWTAuth::toUser($request->token);
                return response()->json(['code' => 200, 'data' => ['user' => $user]]);
            }
        } catch (Exception $e) {

            return response()->json(['code' => 404, 'message' => 'Something went wrong']);

        }
    }

hope this will help you.

Upvotes: 2

Related Questions