登录小程序

这段代码展示了如何使用微信小程序获取用户个人信息并进行登录操作。首先,通过`getUserProfile`获取用户信息,然后利用`wx.login`获取code,接着将code发送到后台换取openid、sessionKey。如果用户是新用户,则创建用户记录;否则更新信息。最后,返回登录token并存储到本地。
摘要由CSDN通过智能技术生成
getUserProfile(e){
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) =>{
         //直接获取code
      wx.login({
          success: (e) => {
              let code = e.code //code码 拿着code 码直接请求接口
              wx.request({
                  url: 'http://www.think2.com/add?code=' + code,
                  data:{
                    nickName:res.userInfo.nickName,
                    avatarUrl:res.userInfo.avatarUrl
                  },
                  success: (res) => {
                    if(res.code = 201){
                        console.log(res.data.data);
                      }
                      let token = res.data.data
                      wx.setStorage({
                          key: "token",
                          data: token
                      })
                      
                      wx.switchTab({
                        url: '/pages/index/index'
                      })
                  }
              })
          }
      })
      }     
    })   
  },
public function Login($code)
     {
         $nickname = input("nickname");
         $img = input("avatarUrl");
         $appid = 'wx0943cca6ca4da425';
         $secret = 'aeb9b8366fc8da494345e54deb53d3f6';
         $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
         $data = file_get_contents($url);//此处是密钥和opedid 不能传给前台
         $data = json_decode($data,true);
         $res = User::where('openid',$data['openid'])->find();
         if(empty($res)){
             $data = User::create(['openid'=>$data['openid'],'nickname'=>$nickname,'img'=>$img,'sessionkey'=>$secret],true);
         }
         $token = md5(rand(1,999999) . $data['openid'] . md5(time()) . $res['id'] . $res['openid']);
         Cache::set($token,$res);
         return json(['code'=>200,'msg'=>'登录成功','data'=>$token]);
     }
 let token = wx.getStorageSync('token')
    if (!token) {
      // 登录
      wx.login({
        success: res => {
          // 发送 res.code 到后台换取 openId, sessionKey, unionId
          //获取code码
          let code = res.code;
          //发送请求获取token
          wx.request({
            url: 'http://www.repairs.com/login?code=' + code,
            success: res => {
              //取token
              let token = res.data.data
              console.log(token);
              //存本地
              try {
                wx.setStorageSync('token', token)
              } catch (e) {
                console.log(e)
              }
            }
          })
        }
      })
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值