认证守卫

未匹配的标注

方法

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

多个守卫

如果最新创建的 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 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
发起讨论 只看当前版本


暂无话题~