微信小程序授权登录

1、获取用户头像、昵称

 //获取用户信息
        wx.getUserProfile({
          desc: 'desc',
          //成功回调
          success(res){
              onself.setData({
                  nickname:res.userInfo.nickName,
                  image:res.userInfo.avatarUrl
              })
             
          }
        })

2、成功获取用户信息后需要获取登录凭证(code)wx.login(Object object) | 微信开放文档

通过凭证进而换取用户登录状态信息,进而获取小程序的唯一标识(openid)及本次登录的会话密钥(session_key)等

        wx.login({
                 success(res){
                     //获取验证码
                     let code=res.code;
                     //发送请求
                     wx.request({
                       url: 'http://www.wty.com/api/login',
                       dataType:'json',
                       method:'POST',
                       data:{
                           code:code,   //验证码
                           nickname:onself.data.nickname, //昵称
                           image:onself.data.image   //头像
                       },
                       success(res){
                           if(res.data.code==200){
                               //缓存用户id
                             wx.setStorageSync('id', res.data.data)
                             
                           }
                       }
                     })
                 }
              })
 #获取登录时验证码
        $code=$data['code'];
        #获取小程序密钥
        $appId="";
        $appSecret="";
        #小程序登录请求地址
        $url="";
        #获取open_id及session_key
        $userInfo=json_decode(file_get_contents($url),true);
        #判断数据库是否有open_id
        $res=\app\api\model\Login::where('open_id',$userInfo['openid'])->find();
        #如果有返回当前用户id 如果没有则添加入口 并返回用户id
        if($res){
            $id=$res->id;
            return $id;
        }else{
            $arr=\app\api\model\Login::create([
                'nickname'=>$data['nickname'],
                'image'=>$data['image'],
                'open_id'=>$userInfo['openid'],
                'session_key'=>$userInfo['session_key']
            ]);
            $id=$arr->id;
            return $id;
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值