1.小程序端登录时存session
wx.login({
success: function(res) {
var code = res.code;
//服务器端微信登录
wx.request({
url: that.globalData.shopServerUrl + '/users/add',
header: {
'Content-Type': 'application/x-www-form-urlencoded',
},
method: 'POST',
data: {
code: code,
first_leader: first_leader
},
success: function(reslogin) {
console.log(reslogin);
if (reslogin.statusCode == 200) {
wx.setStorageSync('shopSessionId', 'shop_ecsid=' + reslogin.data.session_id) //如果本地没有就说明第一次请求
} else {
return false;
}
},
})
}
});
2.后台判断session中的user_id是否存在
public function __construct(Request $request = null)
{
parent::__construct($request);
$this->login = new Login();
$this->usersmodel = new UsersModel();
$this->userservice = new UserService();
$shop_ecsid = param($_COOKIE,'hdsj_ecsid');
if ($shop_ecsid && $shop_ecsid != 'undefined'){
cookie('PHPSESSID',$shop_ecsid);
}
if (!in_array(request()->action(),array_map('strtolower',$this->noVerificationLogin()))){
if (!$this->login->VerificationLogin()){
throw new JsonErrorException('请先登录!',401);
};
$this->user_id = session('user_id');
}
}
//登录 路由 /users/add
public function wxAutoLogin()
{
if (!$user_id){
$user_id = $this->userservice->saveUserInfo($user_info);
}else{
$this->usersmodel->isUpdate(true)->save(array('last_login'=>time()),array('user_id'=>$user_id));
}
session('user_id',$user_id);
$result['session_id'] = session_id();
$result['user_id'] = session('user_id');
return json($result);
}
网友评论