<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      uniapp+thinkphp5實現微信登錄

      前言

      之前做了微信登錄,所以總結一下微信授權登錄并獲取用戶信息這個功能的開發流程。

      配置

      1.首先得在微信公眾平臺申請一下微信小程序賬號并獲取到小程序的AppID和AppSecret
      https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2Fwacodepage%2Fgetcodepage%3Ftoken%3D418035161%26lang%3Dzh_CN

      2.申請認證,企業認證300/年,個人好像是30/年,得認證,不然沒有微信登錄的權限。

      3.配置前端uniapp的項目,在主目錄下找到manifest.json文件->微信小程序配置->將你的小程序的AppID填寫上去

      到此基本配置就已經完畢。

      登錄流程

      1.在實現登錄之前,首先得了解登錄的流程,這是微信登錄的時序圖

      2.具體步驟為:
      ①小程序 wx.checkSession 校驗登陸態,success :接口調用成功,session_key未過期;fail :接口調用失敗,session_key已過期;

      ②因為微信公眾平臺發布了《關于小程序收集用戶手機號行為的規范》中提到部分開發者在處理用戶手機號過程中,存在不規范收集行為,影響了用戶的正常使用體驗,所以平臺在向用戶申請獲取手機號時應明確向用戶說明收集的必要原因,并提供用戶隱私協議由用戶主動同意;所以登錄通過需通過@getphonenumber獲取用戶的encryptedData、iv,再通過wx.login獲取用戶的授權臨時票據code參數;

      ③.服務端接收到參數后隨即通過請求Appid + appSecret + code 到微信方服務器 https://api.weixin.qq.com/sns/jscode2session 獲取 session_key & openid;

      ④.獲取到openid&&session_key后隨機根據getphonenumber獲取到的encryptedData、iv對用戶的手機號碼進行解密;

      流程實現(后端)(PHP)

      public function login()
          {
              $code = input('code');
              $encryptedData = input('mobileEncryptedData');
              $iv = input('mobileIv');
              if ($code) {
                  $appID = 'wxa***************'; //微信公眾平臺->小程序AppID
                  $appSecret = '****************';//微信公眾平臺->小程序AppSecret
                  // 使用 code 換取 session_key 和 openid
                  $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$appID}&secret={$appSecret}&js_code={$code}&grant_type=authorization_code";
                  $result = file_get_contents($url);
                  $data = json_decode($result, true);
                  // 獲取用戶openid&&session_key成功
                  if(isset($data['openid'])){
                      // 解密用戶手機信息
                      $aesKey=base64_decode($data['session_key']);
                      $aesIV=base64_decode($iv);
                      $aesCipher=base64_decode($encryptedData);
                      $result2=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
                      // 用戶電話號碼 $userPhone['phoneNumber']
                      $userPhone=json_decode( $result2, true);
                      
                      $phone=$userPhone['phoneNumber'];
                      $business=$this->BusinessModel->where('mobile',$phone)->find();
                      if($business){
                          // 已注冊
                      }else{
                          // 未注冊
                      }
                  }else{
                      $this->result([],'0','登錄失敗!','json');
                  }
              } else {
                  return "缺少 code 參數";
              }
          }
      
      

      流程實現(前端)(Vue)(uniapp)

      //html
      <button class="wx_login" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
      	手機號快捷登錄
      </button>
      
      //js
      getPhoneNumber(e) {
      	wx.login({
      	success: (res) => {
      		this.userInfo.code = res.code
      		this.userInfo.mobileEncryptedData = e.detail.encryptedData
      		this.userInfo.mobileIv = e.detail.iv
      		this.login()
      	},
      	fail() {
      		this.m_Toast('獲取code失敗')
      		}
      	})
      }
      login() {
          this.$api.user.wx_login(this.userInfo).then(res => {
      		if (res.code == 1) {
      			uni.setStorageSync('userInfo', res.data);
      				uni.showToast({
      					title: res.msg,
      					icon: 'success',
      					duration: 1000
      				})
      				//其他處理
      
      		} else {
      			 uni.showToast({
      				title: res.msg,
      				icon: 'error',
      				duration: 1500
      			})
      		}
      	})
      }
      
      posted @ 2024-07-01 11:38  我恨bug  閱讀(775)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品日韩在线观看| 美日韩在线视频一区二区三区| 亚洲国产日韩一区三区| av午夜福利亚洲精品福利| 亚洲av男人电影天堂热app| 激情的视频一区二区三区| 日本高清aⅴ毛片免费| 2021国产精品一卡2卡三卡4卡| 亚洲精品一区二区三区不| 监利县| 国产一区二区三区九精品| 亚洲高潮喷水无码AV电影| 国产精品成人av电影不卡| 内射无套内射国产精品视频 | 啦啦啦高清在线观看视频www| 波多野结衣网站| 国产综合久久久久鬼色| 国产一区二区av天堂热| 久久免费网站91色网站| av无码免费一区二区三区| 日本一区二区三区免费播放视频站| 五月丁香色综合久久4438| 国产精品一区二区三区激情| 欧美黑人大战白嫩在线| 国产av午夜精品福利| 午夜福利偷拍国语对白| 国产一二三区在线| 商丘市| 亚洲av伦理一区二区| 久久久成人毛片无码| 免费视频一区二区三区亚洲激情 | 午夜精品亚洲一区二区三区| 精品久久久久久国产| 成年无码av片完整版| 国99久9在线 | 免费| 人人妻人人澡人人爽人人精品av | 疯狂做受xxxx高潮欧美日本| 亚洲aⅴ男人的天堂在线观看| 亚洲一区精品伊人久久| 狠狠亚洲色一日本高清色| 91麻豆亚洲国产成人久久|