Answers for "laravel set auth token api"

PHP
4

laravel get authorization bearer token

//get Authorization Bearer Token value
$token = $request->bearerToken();
Posted by: Guest on October-11-2020
0

laravel api authentication

<?php
  
//custom made middleware for token generation and user authentication

//below code for Middleware file in /app/Http/Middleware
namespace App\Http\Middleware;
use Closure;
use \App\Admin;
use Illuminate\Support\Facades\Auth;

class ApiAuthenticate {
   public function handle($request, Closure $next) {

      $token = $request->bearerToken(); //set as Authorization -> Bearer token... in api requests
      
      if ($token) {

          $user = Admin::where('remember_token', $token)->first();

          $request->request->add(['user' => $user]); //to fetch logged in user details in other apis

          if ($user) {
            return $next($request);  //pass on the params to controller
          } else {
            return response()->json('Token expired.');
          }
          
      } else{

        if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->get('remember'))) {

            $remember_token = \Str::random(60);

            $user = Auth::user();
            $user->last_login = new \DateTime();
            $user->remember_token = $remember_token;
            $user->save();

            $remember_token = Admin::where('id', Auth::user()->id)->value('remember_token');
          	//remember_token is fetched separately, as it set hidden in its Model

            $data = ['remember_token'=>$remember_token]; //to use as Authorization -> Bearer remember_token, in other apis.
            return response()->json($data);
        }

      }

      return response()->json('Incorrect Credentials');
      // return $next($request);

   }
}


//pass below line in /routes/api.php
Route::post('leads', 'Api\UserController@index')->middleware('auth_api');


//use below code in Controller file
<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class UserController extends Controller
{
  /**
    * Display a listing of the resource.
    *
    * @return \Illuminate\Http\Response
    */
  public function index(Request $request)
  { 
   $data = ['user'=> 'data'];
    return response()->json($data);
  }

}

//also don't forget to pass this Middleware class in  /app/Http/Kernel.php  
protected $routeMiddleware = [
  
        'auth_api' => \App\Http\Middleware\ApiAuthenticate::class,
    ];
Posted by: Guest on October-06-2021

Browse Popular Code Answers by Language