首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查用户是否在中间件中登录

如何检查用户是否在中间件中登录
EN

Stack Overflow用户
提问于 2019-10-21 13:28:14
回答 2查看 4.1K关注 0票数 1

我正在使用Laravel中的自定义登录和注销。现在,我希望通过中间件检查用户是否通过身份验证,然后他们将通过,否则将被重定向回登录页面。到目前为止,我尝试了以下方法:

代码语言:javascript
运行
复制
public function handle($request, Closure $next)
{
    if (! Auth::check()) {
        return redirect('/');
    }

    return $next($request);
}

它不工作,因为当我dd(Auth::check())时,它给我的输出是false。请帮我解决这个问题。这是我的登录码

代码语言:javascript
运行
复制
$email=Auth::attempt(['email' => $request->login, 'password' => $request->password]);
        $username=Auth::attempt(['username' => $request->login, 'password' => $request->password]);
        if($username || $email)
        {
            $activity=new Activity;
            $activity->user_id=Auth::id();
            $activity->login_time=date('Y-m-d H:i:s');
            $activity->save();
            return redirect('home');
        }
        else
        {
            return back()->with('msg', 'Error!Enter Cedentials Correctly');
        }
EN

回答 2

Stack Overflow用户

发布于 2019-10-21 13:35:32

您的中间件需要在web中间件之后运行,因为web中间件负责引导会话。

此外,我不能完全确定您是否可以在控制器中为中间件组使用中间件方法。你也许可以,但我从来没有真正尝试过。但如果我是你,我会遵循默认结构,将路由放入一个web路由组中。

票数 0
EN

Stack Overflow用户

发布于 2019-10-26 16:53:19

如果你使用的是Laravel Auth,那么我认为这对你来说应该是可行的。

代码语言:javascript
运行
复制
if (\Auth::user()->id !== null) {
    return redirect('/');
}

return $next($request);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58480242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档