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

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

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

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");
});
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

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

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

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