经过身份验证和未经身份验证的用户的通用路由

问题描述 投票:0回答:1

我正在使用 Sanctum 使用 Laravel 和 React 创建一个应用程序。有些路由需要是通用的,可供登录和注销的用户访问。我只是想根据用户的身份验证状态显示不同的信息。问题是,只有当我使用

auth::sanctum
中间件时,我才能检查我是否已登录(
Auth::check()
)或显示当前登录用户的信息(如果有的话)(
Auth::user()
)。我已经找到了解决方案,包括这里。我找到了几个帖子,但没有一个能解决我的问题。我尝试过使用
$request->user('sanctum')
或尝试使用这样的中间件:

class AuthSanctum
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->bearerToken()) {
            Auth::setUser(
                Auth::guard('sanctum')->user()
            );
        }

        return $next($request);
    }
}

我想创建一个控制器方法,在其中检查用户是否已登录,如果是,我希望能够检索用户数据。我怎样才能实现这一目标,为什么它对我不起作用?正如我之前提到的,到目前为止我找到的解决方案并不适合我。因此,这篇新文章。

php laravel backend laravel-sanctum
1个回答
0
投票

-1-从“通用”路线中删除中间件

-2-直接在控制器中检查请求是否来自使用 Auth::check() 进行身份验证的用户,并根据该结果返回适当的响应

© www.soinside.com 2019 - 2024. All rights reserved.