|
- <?php
-
- /*
- * This file is part of the overtrue/socialite.
- *
- * (c) overtrue <i@overtrue.me>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
-
- namespace Overtrue\Socialite;
-
- use ArrayAccess;
- use JsonSerializable;
-
- /**
- * Class User.
- */
- class User implements ArrayAccess, UserInterface, JsonSerializable
- {
- use HasAttributes;
-
- /**
- * User constructor.
- *
- * @param array $attributes
- */
- public function __construct(array $attributes)
- {
- $this->attributes = $attributes;
- }
-
- /**
- * Get the unique identifier for the user.
- *
- * @return string
- */
- public function getId()
- {
- return $this->getAttribute('id');
- }
-
- /**
- * Get the username for the user.
- *
- * @return string
- */
- public function getUsername()
- {
- return $this->getAttribute('username', $this->getId());
- }
-
- /**
- * Get the nickname / username for the user.
- *
- * @return string
- */
- public function getNickname()
- {
- return $this->getAttribute('nickname');
- }
-
- /**
- * Get the full name of the user.
- *
- * @return string
- */
- public function getName()
- {
- return $this->getAttribute('name');
- }
-
- /**
- * Get the e-mail address of the user.
- *
- * @return string
- */
- public function getEmail()
- {
- return $this->getAttribute('email');
- }
-
- /**
- * Get the avatar / image URL for the user.
- *
- * @return string
- */
- public function getAvatar()
- {
- return $this->getAttribute('avatar');
- }
-
- /**
- * Set the token on the user.
- *
- * @param \Overtrue\Socialite\AccessTokenInterface $token
- *
- * @return $this
- */
- public function setToken(AccessTokenInterface $token)
- {
- $this->setAttribute('token', $token);
-
- return $this;
- }
-
- /**
- * @param string $provider
- *
- * @return $this
- */
- public function setProviderName($provider)
- {
- $this->setAttribute('provider', $provider);
-
- return $this;
- }
-
- /**
- * @return string
- */
- public function getProviderName()
- {
- return $this->getAttribute('provider');
- }
-
- /**
- * Get the authorized token.
- *
- * @return \Overtrue\Socialite\AccessToken
- */
- public function getToken()
- {
- return $this->getAttribute('token');
- }
-
- /**
- * Alias of getToken().
- *
- * @return \Overtrue\Socialite\AccessToken
- */
- public function getAccessToken()
- {
- return $this->getToken();
- }
-
- /**
- * Get the original attributes.
- *
- * @return array
- */
- public function getOriginal()
- {
- return $this->getAttribute('original');
- }
-
- /**
- * {@inheritdoc}
- */
- public function jsonSerialize()
- {
- return array_merge($this->attributes, ['token' => $this->token->getAttributes()]);
- }
- }
|