PHP实现微信小程序授权登录(示例)
public function login()
{
$code = input('code');
$nickName = input('nickname');
$avatarUrl = input('avatar');
if (empty($code) || empty($nickName) || empty($avatarUrl)){
return json(['status'=>500,'msg'=>'参数不能为空']);
}
$appid = ' ';
$secret = ' ';
$url = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
$userInfo = json_decode(file_get_contents($url),true);
if (empty($userInfo['openid'])) $this->error('登陆失败,'.$userInfo['errmsg'],'',$userInfo['errcode']);
$userInfo['nickname'] = $nickName;
$userInfo['avatar'] = $avatarUrl;
$userInfo['createtime'] = time();
$userInfo['updatetime'] = time();
$model = new Member();
$data = $model->where('openid',$userInfo['openid'])->find();
if ($data){
$model->where('openid',$userInfo['openid'])->update(['session_key'=>$userInfo['session_key']]);
$userInfo['user_id'] = $data['id'];
$token = signToken($userInfo['user_id']);
}else{
$token = signToken($userInfo['user_id']);
$userInfo['user_id'] = $model->insertGetId($userInfo);
}
$this->success('登陆成功',['token'=>$token],'200');
}