Skip to content

Instantly share code, notes, and snippets.

@mwaboff
Forked from infostreams/UserFromBearerToken.php
Last active November 18, 2020 01:39
Show Gist options
  • Save mwaboff/4f8c1d9b3708ecac53e4aa024eab8bcb to your computer and use it in GitHub Desktop.
Save mwaboff/4f8c1d9b3708ecac53e4aa024eab8bcb to your computer and use it in GitHub Desktop.
How to retrieve or authorize a User object from a Laravel Bearer API token
<?php
namespace App\Http\Controllers;
use App;
use \Laravel\Passport\PassportUserProvider;
use \League\OAuth2\Server\ResourceServer;
use \Laravel\Passport\TokenRepository;
use \Laravel\Passport\Guards\TokenGuard;
use \Laravel\Passport\ClientRepository;
use \Illuminate\Support\Facades\Auth;
use \Illuminate\Http\Request;
class PassportUserVerifyController {
static function getUser($bearerToken) {
$result_user = null;
$tokenguard = new TokenGuard(
App::make(ResourceServer::class),
new PassportUserProvider(Auth::createUserProvider('users'), 'users'),
App::make(TokenRepository::class),
App::make(ClientRepository::class),
App::make('encrypter')
);
$request = Request::create('/');
$request->headers->set('Authorization', $bearerToken);
return $tokenguard->user($request);
}
static function authorizeUser($bearerToken) {
$request = request();
$request->headers->set('Authorization', $bearerToken);
Auth::setRequest($request);
return Auth::user();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment