<?php namespace Laravel\Sanctum; use DateTimeInterface; use Illuminate\Support\Str; trait HasApiTokens { /** * The access token the user is using for the current request. * * @var \Laravel\Sanctum\Contracts\HasAbilities */ protected $accessToken; /** * Get the access tokens that belong to model. * * @return \Illuminate\Database\Eloquent\Relations\MorphMany */ public function tokens() { return $this->morphMany(Sanctum::$personalAccessTokenModel, 'tokenable'); } /** * Determine if the current API token has a given scope. * * @param string $ability * @return bool */ public function tokenCan(string $ability) { return $this->accessToken && $this->accessToken->can($ability); } /** * Create a new personal access token for the user. * * @param string $name * @param array $abilities * @param \DateTimeInterface|null $expiresAt * @return \Laravel\Sanctum\NewAccessToken */ public function createToken(string $name, array $abilities = ['*'], DateTimeInterface $expiresAt = null) { $token = $this->tokens()->create([ 'name' => $name, 'token' => hash('sha256', $plainTextToken = Str::random(40)), 'abilities' => $abilities, 'expires_at' => $expiresAt, ]); return new NewAccessToken($token, $token->getKey().'|'.$plainTextToken); } /** * Get the access token currently associated with the user. * * @return \Laravel\Sanctum\Contracts\HasAbilities */ public function currentAccessToken() { return $this->accessToken; } /** * Set the current access token for the user. * * @param \Laravel\Sanctum\Contracts\HasAbilities $accessToken * @return $this */ public function withAccessToken($accessToken) { $this->accessToken = $accessToken; return $this; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Console | Folder | 0755 |
|
|
Contracts | Folder | 0755 |
|
|
Events | Folder | 0755 |
|
|
Exceptions | Folder | 0755 |
|
|
Http | Folder | 0755 |
|
|
Guard.php | File | 5.32 KB | 0644 |
|
HasApiTokens.php | File | 2.04 KB | 0644 |
|
NewAccessToken.php | File | 1.33 KB | 0644 |
|
PersonalAccessToken.php | File | 2.1 KB | 0644 |
|
Sanctum.php | File | 3.75 KB | 0644 |
|
SanctumServiceProvider.php | File | 3.68 KB | 0644 |
|
TransientToken.php | File | 555 B | 0644 |
|