知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
小程序登錄及AppSecret(小程序密鑰)
發(fā)表時(shí)間:2021-1-4
發(fā)布人:葵宇科技
瀏覽次數(shù):100
調(diào)用wx.login接口,靜默獲取openid
適用場(chǎng)景:無(wú)需使用用戶(hù)頭像、昵稱(chēng)、Unionid信息
復(fù)制代碼
使用 open-data (小程序)或者開(kāi)放數(shù)據(jù)域(小游戲)的方式展示用戶(hù)信息(無(wú)需用戶(hù)授權(quán))
適用場(chǎng)景:需要在前端“展示”用戶(hù)頭像、昵稱(chēng)信息,但不需要獲取Unionid
復(fù)制代碼
使用button(小程序)或UserInfoButton(小游戲)組件,用戶(hù)點(diǎn)擊后彈窗請(qǐng)求用戶(hù)授權(quán)
適用場(chǎng)景:需要獲取用戶(hù)頭像、昵稱(chēng)、Unionid等基本信息
復(fù)制代碼
開(kāi)發(fā)建議
第一步:獲取openID
當(dāng)用戶(hù)訪(fǎng)問(wèn)小程序時(shí),先通過(guò)wx.login,獲取用戶(hù)openID 。這時(shí)無(wú)需彈框授權(quán),開(kāi)發(fā)者拿到 openID 可以建立自身的帳號(hào) ID。
復(fù)制代碼
第二步: 使用open-data方式或開(kāi)放數(shù)據(jù)域方式展示頭像昵稱(chēng)
如需要在前端展示用戶(hù)頭像、昵稱(chēng)信息, 使用open-data 方式或者開(kāi)放數(shù)據(jù)域的方式展示用戶(hù)信息
復(fù)制代碼
第三步:根據(jù)實(shí)際使用場(chǎng)景,使用組件,引導(dǎo)用戶(hù)登錄
在關(guān)鍵操作中,如必須獲取用戶(hù)頭像、昵稱(chēng)、UnionID信息,可根據(jù)第一步獲取的openID判斷是新用戶(hù)還是舊用戶(hù):
如果是舊用戶(hù),可以直接登錄,也可定期使用wx.getUserInfo更新用戶(hù)的信息;
如果是新用戶(hù),使用button(小程序)或UserInfoButton(小游戲)組件,在用戶(hù)點(diǎn)擊后彈窗請(qǐng)求獲取用戶(hù)基本信息。
復(fù)制代碼
會(huì)話(huà)密鑰 session_key
有效性
開(kāi)發(fā)者如果遇到因?yàn)?code style="font-size: 14px; word-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin: 0 2px; color: #1e6bb8; background-color: rgba(27,31,35,.05); font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; word-break: break-all;">session_key 不正確而校驗(yàn)簽名失敗或解密失敗,請(qǐng)關(guān)注下面幾個(gè)與
session_key
有關(guān)的注意事項(xiàng)
1. wx.login 調(diào)用時(shí),用戶(hù)的 session_key 可能會(huì)被更新而致使舊 session_key 失效(刷新機(jī)制存在最短周期,如果同一個(gè)用戶(hù)短時(shí)間內(nèi)多次調(diào)用 wx.login,并非每次調(diào)用都導(dǎo)致 session_key 刷新)。開(kāi)發(fā)者應(yīng)該在明確需要重新登錄時(shí)才調(diào)用 wx.login,及時(shí)通過(guò) code2Session 接口更新服務(wù)器存儲(chǔ)的 session_key。
2. 微信不會(huì)把 session_key 的有效期告知開(kāi)發(fā)者。我們會(huì)根據(jù)用戶(hù)使用小程序的行為對(duì) session_key 進(jìn)行續(xù)期。用戶(hù)越頻繁使用小程序,session_key 有效期越長(zhǎng)。
開(kāi)發(fā)者在 session_key 失效時(shí),可以通過(guò)重新執(zhí)行登錄流程獲取有效的
3. 開(kāi)發(fā)者在 session_key 失效時(shí),可以通過(guò)重新執(zhí)行登錄流程獲取有效的 session_key。使用接口 wx.checkSession可以校驗(yàn) session_key 是否有效,從而避免小程序反復(fù)執(zhí)行登錄流程。
4. 當(dāng)開(kāi)發(fā)者在實(shí)現(xiàn)自定義登錄態(tài)時(shí),可以考慮以 session_key 有效期作為自身登錄態(tài)有效期,也可以實(shí)現(xiàn)自定義的時(shí)效性策略。
復(fù)制代碼
如果使用自己服務(wù)器定義的登錄態(tài)失效時(shí)間,則不需要wx.checkSession
下面是自己項(xiàng)目中的小程序登錄代碼
涉及到用戶(hù)掃碼進(jìn)入小程序,同時(shí)判斷掃碼進(jìn)入是否注冊(cè)過(guò)
//獲取個(gè)人信息
getUserFootpathInfo: function (that) {
that = this;
wx.login({
success: function (data) {
console.log(data, '個(gè)人信息1')
http.getReq('getwechatinfo?code=' + data.code + "&serct=" + app.globalData.serct, function (ress) {
console.log(ress)
app.globalData.openid = ress.data.openid
that.setData({
openid:ress.data.openid
})
http.getReq("getuserinfo?openid=" + ress.data.openid + "&unionid=" + app.globalData.unionid + "&serct=" + getApp().globalData.serct, function (res) {
console.log(res.data, '個(gè)人信息2')
// imageId 掃碼進(jìn)入小程序 用戶(hù) 進(jìn)入游戲的唯一標(biāo)識(shí)
that.setData({
imageId: res.data.imageId
})
if (that.data.device) {
getApp().globalData.type = 2; // 2代表掃碼
// 同時(shí)通過(guò)注冊(cè)得Id判斷是否注冊(cè),
if (that.data.imageId) {
// 授權(quán)成功
that.setData({
bikeFlag: true
})
} else {
// 沒(méi)有授權(quán) "跳轉(zhuǎn)到注冊(cè)頁(yè)面"
if(that.data.btn_disabled){
wx.redirectTo({
url: '../webview/webregist?openid=' + that.data.openid
})
}else{
wx.showToast({
title: "請(qǐng)勾選相關(guān)條款",
icon: 'none'
})
}
}
}
app.globalData.imageId = res.data.imageId;
app.globalData.getUserInfo = res.data;
app.globalData.existsflag = res.data.existsflag;
// 調(diào)取單車(chē)數(shù)據(jù)
that.postRunSportData();
if (res.data.existsflag == 1 || that.data.skipType == "0001") {
that.setData({
httpUserInfo: res.data
})
if (that.data.httpUserInfo.username == null || that.data.httpUserInfo.username == "") {
that.setData({
nickName: "步道用戶(hù)"
})
} else {
that.setData({
nickName: that.data.httpUserInfo.username
})
}
} else {
app.globalData.openid = "guest";
//未注冊(cè) 彈窗注冊(cè)
that.setData({
showRegisterModal: !that.data.showRegisterModal
})
}
that.checkLocation(that)
})
})
},
fail: function (err) {
console.log('wx.login 接口調(diào)用失敗,將無(wú)法正常使用開(kāi)放接口等服務(wù)', err)
}
})
},
相關(guān)案例查看更多
相關(guān)閱讀
- 云南網(wǎng)站建設(shè)快速優(yōu)化
- 網(wǎng)站排名
- 正規(guī)網(wǎng)站建設(shè)公司
- 網(wǎng)站開(kāi)發(fā)公司哪家好
- 網(wǎng)站建設(shè)高手
- 云南小程序開(kāi)發(fā)制作公司
- 人人商城
- 昆明小程序哪家好
- 小程序被騙退款成功
- 云南花農(nóng)小程序
- 云南小程序開(kāi)發(fā)費(fèi)用
- 昆明網(wǎng)絡(luò)公司
- 昆明網(wǎng)站設(shè)計(jì)
- 汽車(chē)回收管理系統(tǒng)
- 網(wǎng)站沒(méi)排名
- 開(kāi)發(fā)框架
- 做小程序被騙
- 網(wǎng)站建設(shè)招商
- 昆明小程序開(kāi)發(fā)聯(lián)系方式
- 小程序密鑰
- 旅游網(wǎng)站建設(shè)
- 網(wǎng)站建設(shè)公司哪家好
- 網(wǎng)站建設(shè)哪家強(qiáng)
- 服務(wù)器
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 云南軟件定制公司
- 云南企業(yè)網(wǎng)站
- 貴州小程序開(kāi)發(fā)
- 網(wǎng)站優(yōu)化哪家好
- 報(bào)廢車(chē)拆解回收管理系統(tǒng)