for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Amelia\Monzo\Socialite;
use Laravel\Socialite\Two\User;
use Laravel\Socialite\Two\AbstractProvider;
use Laravel\Socialite\Two\ProviderInterface;
class MonzoProvider extends AbstractProvider implements ProviderInterface
{
/**
* Unique Provider Identifier.
*/
const IDENTIFIER = 'MONZO';
* {@inheritdoc}
protected $scopes = [];
protected function getAuthUrl($state)
return $this->buildAuthUrlFromBase('https://auth.monzo.com/', $state);
}
protected function getTokenUrl()
return 'https://api.monzo.com/oauth2/token';
protected function getUserByToken($token)
$response = $this->getHttpClient()->get('https://api.monzo.com/ping/whoami', [
'headers' => [
'Authorization' => 'Bearer ' . $token,
],
]);
return json_decode($response->getBody(), true);
protected function mapUserToObject(array $user)
return (new User())->setRaw($user)->map([
'id' => $user['user_id'],
protected function getTokenFields($code)
return array_merge(parent::getTokenFields($code), [
'grant_type' => 'authorization_code',