部署 ecshop 4.0
H5端,发现循环弹出微信授权登录,初步判断是登录状态问题,和前端联调发现前端拿不到 cookie
,api 接口(api.test.demo
)给 h5端(h5.test.deom
) 设置 cookie
,直接给 h5.test.demo
设置,cookie
不会生效,只能给主域 test.demo
设置才会生效。
查看微信登录回调接口 appserver\app\Http\Controllers\v2\UserController.php
中的 webCallback
方法,
if (isset($_GET['referer'])) {
Log::info('微信认证回调成功', $data);
if (isset($data['openid'])) {
Log::info('设置的cookie为' . config('app.domain_url'));
setcookie('o', $data['openid'], time()+7200, '/', config('app.domain_url'));
}
if (isset($data['token'])) {
setcookie('t', $data['token'], time()+7200, '/', config('app.domain_url'));
}
return redirect(urldecode($_GET['referer']));
}
可以看到是给 domain_url
设置cookie
所以需要注意 appserver/.evn 中的 DOMAIN_URL
配置
#商城Domain (此处必须为主域名,设置二级域名无效,api域名、H5域名必须为此主域下的域名)
DOMAIN_URL=test.demo
#商城url
SHOP_URL=http://h5.test.demo
#分享url
SHARE_URL=http://:h5.test.demo/h5
#H5商城
SHOP_H5=http://h5.test.demo/h5