认证守卫

未匹配的标注

方法

以下方法可用于认证守卫实例。

多个守卫

如果最新创建的 api 守卫没有设置默认的守卫或定义了多个守卫认证,你应该指定守卫时调用 auth()

$token = auth('api')->attempt($credentials);

attempt()

通过一些凭证试图认证用户。

// 如果凭证有效,则为用户生成 token
$token = auth()->attempt($credentials);

这将返回一个 jwt 或 null

login

登录一个用户并为他们返回一个 jwt。

// 从某处获取一些用户
$user = User::first();

// 获取 token
$token = auth()->login($user);

user()

获取当前认证的用户。

// 获取当前认证的用户
$user = auth()->user();

如果用户没有认证,则会返回 null

userOrFail()

获取当前已认证用户或抛出一个异常。

try {
    $user = auth()->userOrFail();
} catch (\Tymon\JWTAuth\Exceptions\UserNotDefinedException $e) {
    // 做点什么
}

如果没有设置用户,将抛出 Tymon\JWTAuth\Exceptions\UserNotDefinedException

logout()

注销用户 — 这将使当前 token 失效并取消设置已认证用户。

auth()->logout();

// 传 true 以强制 token “永远”列入黑名单
auth()->logout(true);

refresh()

刷新 token,使当前 token 失效

$newToken = auth()->refresh();

// 第一个参数传 true 以强制 token “永远”列入黑名单。
// 第二个参数将重置新 token 申请
$newToken = auth()->refresh(true, true);

invalidate()

token 失效(添加到黑名单)

auth()->invalidate();

// 第一个参数传 true 以强制 token “永远”列入黑名单。
auth()->invalidate(true);

tokenById()

根据给定用户的 id 获取 token

$token = auth()->tokenById(123);

payload()

获取原始 JWT 负载

$payload = auth()->payload();

// 您可以直接访问声明,例如:
$payload->get('sub'); // = 123
$payload['jti']; // = 'asfe4fq434asdf'
$payload('exp') // = 123456
$payload->toArray(); // = ['sub' => 123, 'exp' => 123456, 'jti' => 'asfe4fq434asdf'] 等

validate()

验证用户的凭证

if (auth()->validate($credentials)) {
    // 凭证有效
}

更高级的用法

添加自定义声明

$token = auth()->claims(['foo' => 'bar'])->attempt($credentials);

显式设置 token

$user = auth()->setToken('eyJhb...')->user();

显式设置请求实例

$user = auth()->setRequest($request)->user();

覆盖 token ttl

$token = auth()->setTTL(7200)->attempt($credentials);

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~