Created
June 5, 2018 03:50
-
-
Save crystrk/5a8281e3ea8c905d430ab3dfdda8b496 to your computer and use it in GitHub Desktop.
Laravel Passport - customize / add user data in the token response
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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