后端接口
/**
* 静默登录
*/
public function login()
{
$code = \request()->get('code');
$appid = 'wx45551aa1550b8b4d';
$secret = '240b8106dd9022fd6dd36822e8531870';
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
$data = json_decode(file_get_contents($url,true),true);
// dd($url);
$openid = $data['openid'];
$user = LoginModel::where('openid',$openid)->first();
if($user){
LoginModel::where('openid',$openid)->update(['session_key'=>$data['session_key']]);
}else{
LoginModel::insert([
'session_key'=>$data['session_key'],
'openid'=>$data['openid']
]);
}
$id = $user['id'];
if (!$id){
return json_encode(['code'=>2001,'msg'=>'用户不存在','data'=>'']);
}
$token = jwtServices::get_token($id);
return json_encode(['code'=>200,'msg'=>'已完成静默登录','data'=>$token]);
}
小程序端/app.js
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
var code = res.code;
// console.log(code)
wx.request({
url: 'http://www.exam.com/index.php/api/login',
data:{
code:code
},
success:function(res){
console.log(res.data.data)
var token = (res.data.data);
wx.setStorageSync('token', token)
}
})
}
})
},