Laravel 5.7auth 跨模块授权的问题

环境:项目有两个模块admin(guard:admin)模块和customer(guard:web)模块。
想要的结果:在admin模块对customer模块进行授权登录。
目前遇到的问题:在admin模块授权,customer模块获取不到
admin授权代码:

    /**
     * @param Request $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function asyncLogin(Request $request)
    {
        if ($request->isMethod('post')) {
            $id = $request->post('id');
            $user = Member::find($id);
            if ($user) {
                Auth::guard("web")->login($user);
                return response()->json(['state' => 1, 'route' => config('domain.customer_link')]);
            }

        }
    }

customer判断代码

    /**
     * 首页
     * @param Request $request
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View
     */
    public function index(Request $request)
    {
        $user = Auth::guard('web')->user();
        if ($user) {
            return redirect('/');
        } else {
            return view('Customer.login.login');
        }
    }
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

看了一下,好像是不同域的cookie是不一样的。。。。我在admin控制器授权。。生成的cookie作用域是admin。。。因此在customer这里是找不到这个cookie。。。

附|:
解决了,解决方法是设置.env里面SESSION_DOMAIN 的作用域为全局。。这样就所有域共享登录信息
SESSION_DOMAIN = .xxx.com

5年前 评论
讨论数量: 2

看了一下,好像是不同域的cookie是不一样的。。。。我在admin控制器授权。。生成的cookie作用域是admin。。。因此在customer这里是找不到这个cookie。。。

附|:
解决了,解决方法是设置.env里面SESSION_DOMAIN 的作用域为全局。。这样就所有域共享登录信息
SESSION_DOMAIN = .xxx.com

5年前 评论

解决了,解决方法是设置.env里面SESSION_DOMAIN 的作用域为全局。。这样就所有域共享登录信息
SESSION_DOMAIN = .xxx.com

5年前 评论

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