Pengenalan ringkas: Laksanakan fungsi log masuk yang dibenarkan bagi program mini

WBOY
Lepaskan: 2023-01-06 16:31:09
ke hadapan
5456 orang telah melayarinya

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Program Mini WeChat, yang terutamanya memperkenalkan cara melaksanakan fungsi log masuk yang dibenarkan bagi Program Mini Mari kita lihat bersama-sama .

Pengenalan ringkas: Laksanakan fungsi log masuk yang dibenarkan bagi program mini

[Cadangan pembelajaran berkaitan: Tutorial Pembelajaran Program Mini]

Dalam kerja harian kita, belajar, Dalam kehidupan kita, program mini WeChat telah menjadi bahagian yang tidak dapat dipisahkan dari kita Jika kita memberi perhatian yang teliti, setiap kali kita menggunakan program mini baru, kita akan sentiasa menemui halaman berikut:

Pengenalan ringkas: Laksanakan fungsi log masuk yang dibenarkan bagi program mini

Ini ialah fungsi log masuk WeChat Mini Program Selepas log masuk yang dibenarkan, kami boleh menggunakan Program Mini seperti biasa, dan Program Mini juga akan mendapatkan hak pengguna, nombor telefon bimbit dan maklumat peribadi kami yang lain

.

Analisis fungsi log masuk yang dibenarkan

Langkah khusus untuk log masuk dibenarkan program mini WeChat adalah seperti berikut

Pengenalan ringkas: Laksanakan fungsi log masuk yang dibenarkan bagi program mini

Terperinci Pelaksanaan terutamanya mempunyai tiga langkah berikut:

  • Panggil wx.login() WeChat API untuk mendapatkan kod kelayakan log masuk sementara dan hantar semula ke pelayan pembangun

  • Panggil auth.code2Session WeChat api antara muka untuk mendapatkan OpenID pengecam unik pengguna, UnionID pengecam unik pengguna di bawah akaun platform terbuka WeChat dan kunci sesi session_key

  • Melalui langkah 2. Nyahsulit parameter yang diperolehi, dapatkan nombor telefon mudah alih pengguna, avatar dan ciri lain dan simpan data yang diperlukan ke cache

Kod untuk melaksanakan langkah adalah seperti berikut:

1 Dapatkan kod kelayakan log masuk sementara

Memandangkan WeChat mengubah suai antara muka getUserInfo secara rasmi, kini adalah mustahil untuk memunculkan tetingkap kebenaran secara automatik sebaik sahaja anda memasuki applet WeChat, jadi kami hanya Pengguna boleh mencetuskan

secara manual melalui butang butang Kami mula-mula menulis kotak pop timbul yang mudah, dikawal oleh pembolehubah isShow bergantung pada maklumat cache dalam langkah 3. Apabila semua langkah selesai, , maklumat pengguna akan dicache dengan betul Pada masa ini, kotak pop timbul disembunyikan -kotak atas akan berada dalam keadaan yang dipaparkan

Pengenalan ringkas: Laksanakan fungsi log masuk yang dibenarkan bagi program mini

  <view>
        <view>
          <text>需要先授权获取个人信息</text>
          <button>微信账号快速授权</button>
        </view>
  </view>
Salin selepas log masuk

Apabila butang diklik, kaedah getUserInfo dipanggil, isShow Tetapkan kepada palsu, dan gunakan wx.login untuk mendapatkan kod kelayakan log masuk

getUserInfo:e=>{      this.setData({        isShow:false
      })

      wx.login({        success: function (res) {               let code = res.code // 登录凭证code
         }
      })
      
  }
Salin selepas log masuk

2. Dapatkan maklumat log masuk pengguna mengikut kod kelayakan log masuk

Dapatkan Selepas mendapat log masuk kod kelayakan, hubungi antara muka API auth.code2Session WeChat (ini adalah operasi bahagian pelayan, bos bahagian belakang mengendalikannya, kami hanya memanggil antara muka yang dia berikan kepada kami secara langsung)

         wx.request({                url: 获取用户信息的auth.code2Session微信api接口,                method: 'POST',                data:{                  code:code//登录凭证code
                },                header: {                  'content-type': 'application/json;charset=UTF-8'
                },                
                success: function (res) {                  var userphone= res.data.data                  //解密手机号
                  var msg = e.detail.errMsg;                  var sessionKey = userphone.session_key;//会话密钥
                  var encryptedData=e.detail.encryptedData; //签名
                  var unionid = userphone.unionid//唯一标识
                  var iv= e.detail.iv;                  //授权成功
                  if (msg == 'getPhoneNumber:ok') {
                    wx.checkSession({                      success:function(){                        //进行请求服务端解密手机号
                        this.deciyption(sessionKey,encryptedData,iv,unionid);
                      }
                    })
                  }
                }
              })
        }
      })
Salin selepas log masuk

Pada masa ini , kebanyakan Kami telah memperoleh maklumat pengguna, tetapi nombor telefon mudah alih pengguna, avatar pengguna dan maklumat lain masih disulitkan Kami perlu menyahsulit untuk mendapatkan parameter ini

3. Menurut maklumat pengguna, nyahsulit untuk mendapatkan nombor telefon mudah alih pengguna

deciyption(sessionKey,encryptedData,iv,unionid){    var that = this;
    wx.request({      url: 解密接口,      method: 'POST',      data: {        sessionKey: sessionKey,        encryptedData:encryptedData,        iv: iv
      },      header: {        'content-type': 'application/json;charset=UTF-8'
      },      success: function(res) {
        let data = res.data        if (data.resultCode == 'success') {
            wx.setStorageSync('userTel', data.data.phoneNumber);//存储解密后的用户手机号
        }else{
            wx.showToast({                title: '获取信息失败请重新授权',                icon: 'none'
            })
            that.setData({                isShow:true
            })
        }    
      },
      fail:function(res) {
        wx.showToast({            title: '获取失败请重新授权',            icon: 'none'
        })
        that.setData({          isShow:true
        })
      }
    })
  },
Salin selepas log masuk

Pada masa ini fungsi log masuk yang dibenarkan telah selesai

Pengenalan ringkas: Laksanakan fungsi log masuk yang dibenarkan bagi program mini

[Cadangan pembelajaran berkaitan: Tutorial pembelajaran program mini]

Atas ialah kandungan terperinci Pengenalan ringkas: Laksanakan fungsi log masuk yang dibenarkan bagi program mini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.im
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan