Skip to content

Instantly share code, notes, and snippets.

@crystrk
Created June 5, 2018 03:50
Show Gist options
  • Save crystrk/5a8281e3ea8c905d430ab3dfdda8b496 to your computer and use it in GitHub Desktop.
Save crystrk/5a8281e3ea8c905d430ab3dfdda8b496 to your computer and use it in GitHub Desktop.
Laravel Passport - customize / add user data in the token response
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Psr\Http\Message\ServerRequestInterface;
use League\OAuth2\Server\Exception\OAuthServerException;
use \Laravel\Passport\Http\Controllers\AccessTokenController as ATC;
class TokenController extends ATC
{
public function issueToken(ServerRequestInterface $request)
{
$tokenResponse = parent::issueToken($request);
$token = $tokenResponse->getContent();
// $tokenInfo will contain the usual Laravel Passort token response.
$tokenInfo = json_decode($token, true);
if(isset($tokenInfo["error"]))
return response([
"error" => "invalid_credentials",
"message" => "The user credentials were incorrect."], 401);
// Then we just add the user to the response before returning it.
$username = $request->getParsedBody()['username'];
$user = User::whereEmail($username)->first();
$user != null ? $user->roles : null;
$tokenInfo = collect($tokenInfo);
$tokenInfo->put('user', $user);
return $tokenInfo;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment