How to call me function in laravel based jwt , Its giving 401 error when hit from my react application?

134 Views Asked by At

Below is my auth controller and api routes file login function is working well no issue in that but getting issue on me() function or /me post route please help me to solve it out.

AuthController

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request; 
use JWTAuth;
use JWTFactory;

class AuthController extends Controller
{
    /**
     * Create a new AuthController instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth:api', ['except' => ['login']]);
    }

    /**
     * Get a JWT via given credentials.
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function index()
    {
        return response()->json(['message' => 'Ok Bro !'], 200);
    }    
    
    public function login(Request $request)
    { 
         $password= bcrypt($request->password);
         $credentials1=[
            'email'=>$request->email,
            'password'=>$password
         ];
       $credentials = request(['email',   'password',]);  
          if (! $token = JWTAuth::attempt($credentials)) {
        return response()->json(['error' => 'Invalid Userid Or Password'], 200);
        } 

        return $this->respondWithToken($token);
        
       //return $credentials1;  // print_r($credentials);

       //$2y$10$yxnc9WKUM3fw4BlDOjJWM.8SYuLnWdEoRgrM4Nc\/iQspi2cAE8E5K
       //$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi
    }

    /**
     * Get the authenticated User.
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function me()
    {
       //  $user = JWTAuth::toUser($token);

 ///return response()->json(compact('token', 'user'));
 
          return response()->json(auth()->user());
    }

    /**
     * Log the user out (Invalidate the token).
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function logout()
    {
        auth()->logout();

        return response()->json(['message' => 'Successfully logged out']);
    }

    /**
     * Refresh a token.
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function refresh()
    {
        return $this->respondWithToken(auth()->refresh());
    }

    /**
     * Get the token array structure.
     *
     * @param  string $token
     *
     * @return \Illuminate\Http\JsonResponse
     */
    protected function respondWithToken($token)
    {
        return response()->json([
            'access_token' => $token,
            'token_type' => 'bearer',
            'expires_in' => auth()->factory()->getTTL() * 60,
            'user'=>auth()->user()
        ]);
    }
}

Below is api routes file login function is working well no issue in that but getting issue on me() function or /me post route please help me to solve it out.

Api Route

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
 
 
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});
 
 

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

Route::group(['middleware'=>'api'],function(){
Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::post('me', 'AuthController@me');
});    


Result on Post Request in console Issue i am getting on page from post request in react

enter image description here

0

There are 0 best solutions below