Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save messi89/489473c053e3ea8d9e034b0032effb1d to your computer and use it in GitHub Desktop.

Select an option

Save messi89/489473c053e3ea8d9e034b0032effb1d to your computer and use it in GitHub Desktop.

Revisions

  1. messi89 revised this gist Aug 27, 2017. No changes.
  2. messi89 created this gist Aug 27, 2017.
    56 changes: 56 additions & 0 deletions \Laravel\Passport\Http\Controllers\AccessTokenController
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    <?php
    /**
    * Laravel Passport - Customize Token response.
    *
    * @author Messi89 OVERGEN <@messi89minou>
    * @link https://github.com/messi89
    */
    namespace App\Http\Controllers\Api;

    use App\Models\User;
    use Exception;
    use Illuminate\Database\Eloquent\ModelNotFoundException;
    use League\OAuth2\Server\Exception\OAuthServerException;
    use Psr\Http\Message\ServerRequestInterface;
    use Response;

    class AccessTokenController extends \Laravel\Passport\Http\Controllers\AccessTokenController
    {
    public function issueToken(ServerRequestInterface $request)
    {
    try {
    //get username (default is :email)
    $username = $request->getParsedBody()['username'];

    //get user
    $user = User::where('email', '=', $username)->firstOrFail();

    //issuetoken
    $tokenResponse = parent::issueToken($request);

    //convert response to json string
    $content = $tokenResponse->getBody()->__toString();

    //convert json to array
    $data = json_decode($content, true);

    if(isset($data["error"]))
    throw new OAuthServerException('The user credentials were incorrect.', 6, 'invalid_credentials', 401);

    //add access token to user
    $user = collect($user);
    $user->put('access_token', $data['access_token']);

    return Response::json(array($user));
    }
    catch (ModelNotFoundException $e) { // email notfound
    //return error message
    }
    catch (OAuthServerException $e) { //password not correct..token not granted
    //return error message
    }
    catch (Exception $e) {
    ////return error message
    }
    }
    }