Files
douba_shop/vendor/overtrue/socialite/src/User.php
Karlcarlo 0060b2798f chore: 添加缺失的静态资源文件
添加多个前端界面所需的图片、字体、音频等静态资源文件,包括:
- 管理员后台的图标、背景图、组件图片
- 移动端页面的商品图片、用户中心图片、活动图标
- 第三方库的示例图片和字体文件
- 浏览器兼容性配置文件
- 图标字体文件(eot、ttf、woff、woff2格式)

这些资源是前端界面正常显示所必需的,之前可能因版本控制忽略或遗漏而缺失。
2026-03-06 20:15:52 +08:00

129 lines
2.9 KiB
PHP

<?php
namespace Overtrue\Socialite;
use ArrayAccess;
use JsonSerializable;
class User implements ArrayAccess, Contracts\UserInterface, JsonSerializable
{
use Traits\HasAttributes;
public function __construct(array $attributes, protected ?Contracts\ProviderInterface $provider = null)
{
$this->attributes = $attributes;
}
public function getId(): mixed
{
return $this->getAttribute(Contracts\ABNF_ID) ?? $this->getEmail();
}
public function getNickname(): ?string
{
return $this->getAttribute(Contracts\ABNF_NICKNAME) ?? $this->getName();
}
public function getName(): ?string
{
return $this->getAttribute(Contracts\ABNF_NAME);
}
public function getEmail(): ?string
{
return $this->getAttribute(Contracts\ABNF_EMAIL);
}
public function getAvatar(): ?string
{
return $this->getAttribute(Contracts\ABNF_AVATAR);
}
public function setAccessToken(string $value): self
{
$this->setAttribute(Contracts\RFC6749_ABNF_ACCESS_TOKEN, $value);
return $this;
}
public function getAccessToken(): ?string
{
return $this->getAttribute(Contracts\RFC6749_ABNF_ACCESS_TOKEN);
}
public function setRefreshToken(?string $value): self
{
$this->setAttribute(Contracts\RFC6749_ABNF_REFRESH_TOKEN, $value);
return $this;
}
public function getRefreshToken(): ?string
{
return $this->getAttribute(Contracts\RFC6749_ABNF_REFRESH_TOKEN);
}
public function setExpiresIn(int $value): self
{
$this->setAttribute(Contracts\RFC6749_ABNF_EXPIRES_IN, $value);
return $this;
}
public function getExpiresIn(): ?int
{
return $this->getAttribute(Contracts\RFC6749_ABNF_EXPIRES_IN);
}
public function setRaw(array $user): self
{
$this->setAttribute('raw', $user);
return $this;
}
public function getRaw(): array
{
return $this->getAttribute('raw', []);
}
public function setTokenResponse(array $response): self
{
$this->setAttribute('token_response', $response);
return $this;
}
public function getTokenResponse(): mixed
{
return $this->getAttribute('token_response');
}
public function jsonSerialize(): array
{
return $this->attributes;
}
public function __serialize(): array
{
return $this->attributes;
}
public function __unserialize(array $serialized): void
{
$this->attributes = $serialized ?: [];
}
public function getProvider(): Contracts\ProviderInterface
{
return $this->provider ?? throw new Exceptions\Exception('The provider instance doesn\'t initialized correctly.');
}
public function setProvider(Contracts\ProviderInterface $provider): self
{
$this->provider = $provider;
return $this;
}
}