diff --git a/Provider.php b/Provider.php index 60f2791..d27dff1 100644 --- a/Provider.php +++ b/Provider.php @@ -24,7 +24,18 @@ class Provider extends AbstractProvider implements ProviderInterface */ public static function additionalConfigKeys() { - return ['host', 'authorize_uri', 'token_uri', 'userinfo_uri', 'userinfo_key']; + return [ + 'host', + 'authorize_uri', + 'token_uri', + 'userinfo_uri', + 'userinfo_key', + 'user_id', + 'user_nickname', + 'user_name', + 'user_email', + 'user_avatar', + ]; } /** @@ -80,11 +91,11 @@ protected function mapUserToObject(array $user) $data = is_null($key) === true ? $user : Arr::get($user, $key, []); return (new User())->setRaw($data)->map([ - 'id' => Arr::get($data, 'id'), - 'nickname' => Arr::get($data, 'username'), - 'name' => Arr::get($data, 'name'), - 'email' => Arr::get($data, 'email'), - 'avatar' => Arr::get($user, 'avatar'), + 'id' => $this->getUserData($data, 'id'), + 'nickname' => $this->getUserData($data, 'nickname'), + 'name' => $this->getUserData($data, 'name'), + 'email' => $this->getUserData($data, 'email'), + 'avatar' => $this->getUserData($data, 'avatar'), ]); } @@ -113,4 +124,12 @@ protected function getLaravelPassportUrl($type) 'userinfo_uri' => 'api/user', ], $type))), '/'); } + + /** + * {@inheritdoc} + */ + protected function getUserData($user, $key) + { + return Arr::get($user, $this->getConfig('user_'.$key, $key)); + } }