无法获取用户登录状态(需刷新页面)

本人在开发微信二维码登录时,遇到了用户无法登录的问题。

微信成功回调后,进入如下逻辑,代码在控制器中

public function callBack(WechatCallBackRequest $request){
    //**微信处理逻辑**
    $model = User::whereWeixinUnionid($unionId)
            ->where('is_active', 1)
            ->whereIn('role', [2, 3])
            ->first();

    if (is_null($model)) {
        return failJsonResponse(403, '无权访问.');
    }

    \Auth::guard("web")->login($model,true);

    return redirect()->route("home_page");

}

感觉是登录成功了,接下来跳转到登录后主页

很奇怪,竟然又要跳转到登录页面。。。
然后在登录页面刷新以下,就回到登录后的主页了。。。

不知道哪位大佬遇到过此类问题,求解答!
44ed93d9-ae29-4807-8c44-9a0f1207d20e

如果是以下写法,正常访问。

$router->get("/tmp/login/{id?}", function ($id = 1) {

Auth::guard("web")->login(\App\User::find($id));

return redirect()->route("home_page");
});
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

主要是 cookie 作用域问题,前面微信服务器回调时会话是自己服务器和微信服务器之间的,后面的 redirect()->route("home_page"); 其实是跨域了,和你在服务器上请求百度是一个意思。跳转回来后需要自己添加cookie并设置cookie作用域,之后再跳转就没问题了。

4年前 评论
mostwin (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!