赞
踩
- /**
- * 微信授权登录
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function wxlogin()
- {
- //接收参数
- $code = $this->request->post('code'); //code码
- //验证参数
- if (empty($code)){
- $this->error('参数不能为空');
- }
- //自己到微信公众平台获取
- $appid = $this->appid;
- $secret = $this->secret;
- //获取openid
- $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('注册失败');
- //根据获取的openid 来查看数据库 有的话更新 session_key 没有的话添加
- $user = \app\common\model\User::where('openid',$userInfo['openid'])->find();
- if ($user){
- $ret = $this->auth->direct($user['id']);
- }else {
- //获取access_token
- $mobile = $this->request->post('mobile'); //获取手机号
- $data = [
- 'openid' => $userInfo['openid'],
- ];
- $ret = $this->auth->register($mobile, Random::alnum(), '', $mobile, $data);
- }
- if ($ret) {
- $info = $this->auth->getUserinfo();
- $data = ['userinfo' => $info];
- $this->success(__('Logged in successful'), $data);
- } else {
- $this->error($this->auth->getError());
- }
- }
PHP微信小程序授权登录 fastadmin可直接使用 需要在user表里增加openid字段 手机号如果不需要的话可以隐藏掉,更改里面的配置即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。