微信小程序静默登录+一键手机号绑定

这篇具有很好参考价值的文章主要介绍了微信小程序静默登录+一键手机号绑定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

//在app.js里有小程序写好的模板,直接调用既可

 
 // 静默登录
    wx.login({
      success: res => {
             var code = (res.code)
             wx.request({
               url: 'http://www.yq.com/index.php/api/login',
               data:{
                   code:code
               },
               success:function(res){
                    var code  = (res.data.code)   
                    if(code==200){
                      wx.reLaunch({
                        url: '/pages/login/login',
                      })
                    }
               }
             })
      }
    })

//后端代码逻辑如下

1.先接收到小程序端传过来的code

2然后微信开发文档获取到你的appid和screct

https://mp.weixin.qq.com/

3接着获取到你的sppid,和 session_key,去库里查看是否有sppid一样的用户,如果有更新session_key,如果没有就将你获取到的sppid和session_key添加进库,并返回数据


    /**
     * 静默登录
     */
     public function login(){
         $code = \request()->get('code');
         $appid = '你的';
         $secret ='你的';
         $url ="https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
         $url =   file_get_contents($url,true);
         $url = json_decode($url,true);
         $openid =$url['openid'];
         $session_key=$url['session_key'];
         $data =  modeller::where('openid',$openid)->first();
         if (!$data){
              modeller::create($url);
         }else{
               modeller::where('openid',$openid)->update([
                   'session_key'=>$session_key
               ]);
         }
         //应该在这里,将用户表里的数据查出来,然后将id加密返回到前端,我脑子瓦特了,忘记返回了,所以前端就随便定义了一个数作为id,切记
        return json_encode(['code'=>200,'msg'=>'成功','data'=>[]]);
     }

   手机号绑定(一键登录)

  //逻辑,首先将code获取,然后去后台获取到手机号返回前端,从前端将缓存的id和手机号请求后端,将id相等的字段后绑定手机号

获取手机号 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

//这是链接上可以复制的,获取手机号

微信小程序静默登录+一键手机号绑定

//这是获取到的code

  /**

   * 一键获取手机号

   */

  getPhoneNumber (e) {

      var code = (e.detail.code)

      wx.request({

        url: 'http://www.yq.com/index.php/api/loginDo',

        data:{

          code:code

        },

        success:function(res){

             var phone = (res.data.data.phone_info.phoneNumber)

             //这是返回回来的token,通过wx.setStorageSync('key', data)存的,现在取出来,由于刚刚在静默登录的时候没有返回token,

             //所以就以id=1为token,jwt不知道怎么弄的可以看我的博客

            var id = 1

             wx.request({

               url: 'http://www.yq.com/index.php/api/phone',

               data:{

                 id:id,

                 phone:phone

               },

               success:function(res){

                     console.log(res)

               }

             })

        }

      })

  }

//获取到code后,将code请求后端

微信小程序静默登录+一键手机号绑定

 //上述是获取token的,sppid,和secret我上面已经发过怎么获取了

微信小程序静默登录+一键手机号绑定

//获取到token后,在将token放入上述链接,就可以获取到本机手机号了 下面是具体代码

/**
 * 绑定手机号
 */
public function loginDo(){
    $code = \request()->get('code');
    $appid = 'wxf095686f4b4d0528';
    $secret ='a1fc49d593bccbf0df19cee4191c0c2d';
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
    $url =  file_get_contents($url,true);
    $access_token = json_decode($url,true);
    $token =   $access_token['access_token'];
    $urlinfo = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=$token";
    $data = ['code'=>$code];
    $requ =   json_encode($data);
    $con = stream_context_create(['http'=>['method'=>"POST",'header'=>"Content-type:application/json",'content'=>$requ]]);
    $urlInfo = file_get_contents($urlinfo,false,$con);
    $urls=json_decode($urlInfo,true);
    return json_encode(['code'=>200,'msg'=>'成功','data'=>$urls]);
}

//获取到手机号后返回前端(这个跟上面发的前端一样我只讲下逻辑),返回成功后将手机号和id请求后端

 /**
   * 一键获取手机号
   */
  getPhoneNumber (e) {
      var code = (e.detail.code)
      wx.request({
        url: 'http://www.yq.com/index.php/api/loginDo',
        data:{
          code:code
        },
        success:function(res){
             var phone = (res.data.data.phone_info.phoneNumber)
             //这是返回回来的token,通过wx.setStorageSync('key', data)存的,现在取出来,由于刚刚在静默登录的时候没有返回token,
             //所以就以id=1为token,jwt不知道怎么弄的可以看我的博客
            var id = 1
             wx.request({
               url: 'http://www.yq.com/index.php/api/phone',
               data:{
                 id:id,
                 phone:phone
               },
               success:function(res){
                     console.log(res)
               }
             })
        }
      })
  }
   /**
    * 绑定手机号
    */
   public function phone(){
         $id = \request()->get('id');
         $phone = \request()->get('phone');
         modeller::where('id',$id)->update([
             'phone'=>$phone
         ]);
   }

//感谢观看文章来源地址https://www.toymoban.com/news/detail-491871.html

到了这里,关于微信小程序静默登录+一键手机号绑定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】微信登录和手机号快捷登录:

    一、微信登录: 【1】文档: 【微信官方文档】https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html 【2】实现: 二、手机号快捷登录: 【1】文档: 【小程序中获取手机号的 API官方文档】https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/deprecatedGetPhoneN

    2024年02月06日
    浏览(54)
  • 微信小程序:登录授权,根据手机号获取凭证,获取用户手机号

    1.微信小程序授权 controller 层代码 wxUtils 工具类 2.微信小程序,用户手机号获取 微信小程序,根据code(code为手机号获取凭证)获取用户加密手机号 获取用户手机号方法

    2024年02月14日
    浏览(61)
  • 微信小程序&会议OA-登录获取手机号流程&登录-小程序&导入微信小程序SDK(从微信小程序和会议OA登录获取手机号到登录小程序导入微信小程序SDK)

    目录 获取用户昵称头像和昵称 wx.getUserProfile bindgetuserinfo 登录过程 登录-小程序 wx.checkSession wx.login wx.request 后台 准备数据表 反向生成工具生成 准备封装前端传过来的数据 小程序服器配置 导入微信小程序SDK application.yml WxProperties WxConfig WxAuthController 登录-小程序 login.js user.j

    2024年02月04日
    浏览(49)
  • 微信小程序 - 实现手机号登录--授权并获取手机号保存至本地

    微信官方文档 | 获取手机号 这是服务端的  这是我们前端获取手机号需要给接口传递的两个参数    注意: 参数一: 获取access_token需要用到小程序密钥,这个需要从 服务端获取 ,也就是需要请求后端接口获取access_token,千万不要将小程序密钥写在前端代码中, 必须 要从服

    2024年02月03日
    浏览(58)
  • Java - 微信小程序授权手机号登录

            最近做了一个关于商城的项目,B端选用若依的开源框架,C端还是vue前后端分离。其中C端主要是小程序的形式,所以想着来总结一下对接微信小程序登录中Java部分遇到的坑即代码分享! 废话不多说,直接上代码! 1、controller 层代码          入参我这边是直接使用

    2024年02月04日
    浏览(49)
  • 【微信小程序】如何获取用户手机号授权登录

    目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体),也就是说只针对企业认证小程序开放。若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。 在使用该接口时,用户可使用微信绑定手机号进行授权,也添加

    2024年02月16日
    浏览(69)
  • 微信小程序获取手机号登录(Java后端)

    1.前端请求getPhoneNumber方法获取code传给后端接口; 2.后端接口通过配置的appid、secretKey请求接口https://api.weixin.qq.com/cgi-bin/token获取access_token参数; 3.后端通过参数code和参数access_token,去请求接口https://api.weixin.qq.com/wxa/business/getuserphonenumber来获取手机号。

    2024年02月11日
    浏览(68)
  • uniapp微信小程序授权登录并获取手机号

    新版:前端要授权两次,一次获取用户信息授权码code,另外一次获取用户手机授权码code,全部传给后端。后端通过用户信息授权码获取openid,通过手机授权码获取手机号码。老版:前端传给后端授权码code和用户手机授权回调 里的iv和encryptedData给后端,后端通过code获取ope

    2024年02月11日
    浏览(95)
  • 微信小程序中如何获取用户手机号授权登录

    随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务。而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一。因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录。 首先,在小程序后台开发设置中勾选“获取手机号”选项

    2024年02月11日
    浏览(100)
  • 【微信小程序】实现微信小程序登录(附源码)后端,微信小程序获取手机号

    登录简介 第一步:获取token 第二步:通过token拿用户信息 第三步:调用接口获取手机号 HttpClientUtil: WeChatUtil: controller层: service层: serviceImpl层: 登录简介        新版本微信小程序登录 是前端获取用户信息,不再是后端获取信息进行保存。所以后端要做的主要流程就是

    2024年04月23日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包