當(dāng)前位置:首頁(yè) > IT技術(shù) > 微信平臺(tái) > 正文

微信小程序微信登錄
2021-07-26 10:28:24

?

微信小程序微信登錄_微信小程序開發(fā)接口
登錄
wx.login
wx.checkSession
簽名加密

小程序登錄
小程序可以通過(guò)微信官方提供的登錄能力方便地獲取微信提供的用戶身份標(biāo)識(shí),快速建立小程序內(nèi)的用戶體系。

登錄流程時(shí)序

小程序,開發(fā)者服務(wù)器,微信接口服務(wù)

wx.login()獲取code
wx.request()發(fā)送code

登錄憑證校驗(yàn)接口
appid+appsecret+code
session_key+openid等

自定義登錄
與openid,session_key關(guān)聯(lián)

微信小程序微信登錄_微信小程序_02

?

微信小程序微信登錄_微信小程序_03

?

微信小程序微信登錄_微信小程序_04

?

微信登錄授權(quán):

wx.authorize
提前向用戶發(fā)起授權(quán)請(qǐng)求,調(diào)用后會(huì)立刻彈窗詢問用戶是否同意授權(quán)小程序使用某項(xiàng)目功能或獲取用戶的某些數(shù)據(jù),但不會(huì)實(shí)際調(diào)用對(duì)應(yīng)的接口,如果用戶之前就已經(jīng)同意授權(quán),則不會(huì)出現(xiàn)彈窗。

微信小程序微信登錄_微信小程序_05

?

微信小程序微信登錄_微信小程序_06

?

微信小程序微信登錄_微信小程序_07

?

  • ?
<button open-type="getUserInfo"></button>

userInfo參數(shù)說(shuō)明:
nickName
avatarUrl
gender
city
province
country
language

微信小程序微信登錄_微信小程序_08

?

微信小程序微信登錄_微信小程序_09

  • ?
wx.login({  success (res) {    if (res.code) {      //發(fā)起網(wǎng)絡(luò)請(qǐng)求      wx.request({        url: 'https://test.com/onLogin',        data: {          code: res.code        }      })    } else {      console.log('登錄失?。?#39; + res.errMsg)    }  }})

wx.checkSession(Object object)
檢查登錄態(tài)是否過(guò)期。

?

  • ?
wx.checkSession({  success () {    //session_key 未過(guò)期,并且在本生命周期一直有效  },  fail () {    // session_key 已經(jīng)失效,需要重新執(zhí)行登錄流程    wx.login() //重新登錄  }})

wx.getUserInfo(Object object)
獲取用戶信息。

  • ?
// 必須是在用戶已經(jīng)授權(quán)的情況下調(diào)用wx.getUserInfo({  success: function(res) {    var userInfo = res.userInfo    var nickName = userInfo.nickName    var avatarUrl = userInfo.avatarUrl    var gender = userInfo.gender //性別 0:未知、1:男、2:女    var province = userInfo.province    var city = userInfo.city    var country = userInfo.country  }})
  • ?
<!-- 如果只是展示用戶頭像昵稱,可以使用 <open-data /> 組件 --><open-data type="userAvatarUrl"></open-data><open-data type="userNickName"></open-data><!-- 需要使用 button 來(lái)授權(quán)登錄 --><button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授權(quán)登錄</button><view wx:else>請(qǐng)升級(jí)微信版本</view>
Page({ data: { canIUse: wx.canIUse('button.open-type.getUserInfo') }, onLoad: function() { // 查看是否授權(quán) wx.getSetting({ success (res){ if (res.authSetting['scope.userInfo']) { // 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱 wx.getUserInfo({ success: function(res) { console.log(res.userInfo) } }) } } }) }, bindGetUserInfo (e) { console.log(e.detail.userInfo) }})

微信小程序微信登錄_微信小程序_10

?

微信小程序微信登錄_微信小程序_11

小程序登錄

  • ?
const app = getApp()
Page({ data: { }, onLoad: function(params) { }, // 登錄 doLogin: function(e) { console.log(e.detail.errMsg) console.log(e.detail.userInfo) console.log(e.detail.rawData) wx.login({ success (res) { if (res.code) { //發(fā)起網(wǎng)絡(luò)請(qǐng)求 wx.request({ url: 'https://test.com/onLogin', data: { code: res.code } }) } else { console.log('登錄失??!' + res.errMsg) } }}) }})
  • ?
<view> <button class="goRegistBtn" type="warn" open-type='getUserInfo' bindgetusrinfo="doLogin">微信登錄</button></view>

?

wx.getUserInfo(Object object)

?

微信小程序微信登錄_微信小程序_12

?

微信小程序微信登錄_微信小程序_13

?

微信小程序微信登錄_微信小程序_14

?

  • ?
App({ serverUrl: "", userInfo: null,  setGlobalUserInfo: function(user) {  wx.setStorageSync("userInfo", user); },
getGlobalUserInfo: function() { return wx.getStorageSync("userInfo"); },
})

獲取微信session_key和secret

微信小程序微信登錄_微信小程序_15

?

微信小程序微信登錄_微信小程序_16

?

微信小程序微信登錄_微信小程序_17

?

微信小程序微信登錄_微信小程序_18

?

微信小程序微信登錄_微信小程序_19

本文摘自 :https://blog.51cto.com/u

開通會(huì)員,享受整站包年服務(wù)立即開通 >