# 用户认证
WARNING
本节内容仅适用于 Blessing Skin v4 或更高版本
# 概览
Blessing Skin v4 使用了 Laravel 自带的认证系统,因此获取当前用户的信息变得容易。Laravel 的认证系统提供了一系列方法,您既可以通过 Auth
Facade 来调用,也可以使用 auth
辅助函数。下面的演示都使用 auth
辅助函数,但实际中,无论是 Auth
Facade 还是 auth
辅助函数,两者是一样的。
# 检查用户是否已登录
通常,您如果要让某个请求只有在用户登录才能访问的话,您应该使用 auth
中间件。不过在某些场景下,您可能需要在控制器中或其它地方手动检查用户是否已登录,那么您可以使用 check
方法,它返回一个 bool
类型的值,表明用户是否已登录。
if (auth()->check()) {
// 用户已登录
}
# 获取当前用户的模型实例
您可能需要获取当前已登录的用户的模型实例。您可以使用 user
方法,如果用户未登录,它将返回 null
,因此使用 user
方法前不需要调用 check
方法,只需要判断 user
方法的返回值是否为空即可。
$user = auth()->user();
// 这里的 $user 就是 App\Models\User 的实例,因此 User 模型实例中的方法都能用。
# 获取当前用户的 uid
您可以像这样获取当前用户的 uid
:
$uid = auth()->user()->uid;
但其实还有更简便的方法,那就是调用 id
方法:
$uid = auth()->id();
# Blade 与视图
Laravel 为 Blade 提供了两个指令,可以对当前认证情况进行判断,而无需使用 @if
指令手动判断。
# @auth
指令
@auth
这里的内容只有在用户登录才能看到。
@endauth
# @guest
指令
@guest
这里的内容只有未登录的用户才能看到。
@endguest