微信小程序獲取用戶openid的實(shí)現(xiàn)
1、wx.login(OBJECT)
調(diào)用接口獲取登錄憑證(code)進(jìn)而換取用戶登錄態(tài)信息,包括用戶的唯一標(biāo)識(openid) 及本次登錄的 會話密鑰(session_key)。用戶數(shù)據(jù)的加解密通訊需要依賴會話密鑰完成。
2、code 換取 session_key
這是一個(gè) HTTPS 接口,開發(fā)者服務(wù)器使用登錄憑證 code 獲取 session_key 和 openid。其中 session_key 是對用戶數(shù)據(jù)進(jìn)行加密簽名的密鑰。為了自身應(yīng)用安全,session_key 不應(yīng)該在網(wǎng)絡(luò)上傳輸。
接口地址:
詳細(xì)的介紹請看小程序APIhttps://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject
3、獲取用戶openid實(shí)例
//app.js
App({
globalData:{
appid:'1wqas2342dasaqwe2323424ac23qwe',//appid需自己提供,此處的appid我隨機(jī)編寫
secret:'e0dassdadef2424234209bwqqweqw123ccqwa',//secret需自己提供,此處的secret我隨機(jī)編寫
},
onLaunch: function () {
var that = this
var user=wx.getStorageSync('user') || {};
var userInfo=wx.getStorageSync('userInfo') || {};
if((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600))&&(!userInfo.nickName)){
wx.login({
success: function(res){
if(res.code) {
wx.getUserInfo({
success: function (res) {
var objz={};
objz.avatarUrl=res.userInfo.avatarUrl;
objz.nickName=res.userInfo.nickName;
//console.log(objz);
wx.setStorageSync('userInfo', objz);//存儲userInfo
}
});
var d=that.globalData;//這里存儲了appid、secret、token串
var l='https://api.weixin.qq.com/sns/jscode2session?appid='+d.appid+'&secret='+d.secret+'&js_code='+res.code+'&grant_type=authorization_code';
wx.request({
url: l,
data: {},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
// header: {}, // 設(shè)置請求的 header
success: function(res){
var obj={};
obj.openid=res.data.openid;
obj.expires_in=Date.now()+res.data.expires_in;
//console.log(obj);
wx.setStorageSync('user', obj);//存儲openid
}
});
}else {
console.log('獲取用戶登錄態(tài)失??!' + res.errMsg)
}
}
});
}
},
})
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js網(wǎng)頁實(shí)時(shí)倒計(jì)時(shí)精確到秒級
網(wǎng)頁實(shí)時(shí)倒計(jì)時(shí),精確到秒級,和天數(shù)倒計(jì)時(shí)原理一樣,需要的朋友可以參考下2014-02-02
js鼠標(biāo)坐標(biāo)獲取常用的三個(gè)方法
這篇文章主要給大家介紹了js鼠標(biāo)坐標(biāo)獲取常用的三個(gè)方法,在 JavaScript中當(dāng)事件發(fā)生時(shí)獲取鼠標(biāo)的位置是件很重要的事件,需要的朋友可以參考下2023-09-09
JavaScript數(shù)組對象賦值用法實(shí)例
這篇文章主要介紹了JavaScript數(shù)組對象賦值用法,涉及javascript用戶交互及針對數(shù)組的排序技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
JS禁用頁面上所有控件的實(shí)現(xiàn)方法(附demo源碼下載)
這篇文章主要介紹了JS禁用頁面上所有控件的方法,涉及JavaScript捕捉頁面元素的相關(guān)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2015-12-12
微信小程序 Animation實(shí)現(xiàn)圖片旋轉(zhuǎn)動畫示例
這篇文章主要介紹了微信小程序 Animation實(shí)現(xiàn)圖片旋轉(zhuǎn)動畫示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08
JavaScript事件發(fā)布/訂閱模式原理與用法分析
這篇文章主要介紹了JavaScript事件發(fā)布/訂閱模式,結(jié)合實(shí)例形式簡單分析了javascript發(fā)布/訂閱模式的概念、原理及簡單使用方法,需要的朋友可以參考下2018-08-08

