知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
基于bmob快速搭建小程序用戶模塊(包括登錄、當(dāng)前用戶、用戶安全) ...
發(fā)表時(shí)間:2021-3-31
發(fā)布人:葵宇科技
瀏覽次數(shù):90
一鍵登錄
開發(fā)小程序登錄后端工作:
- 客戶端調(diào)用wx.login()后獲取的code,后端人員拿到code和微信換取openid和session_key;
- 除此之外后端人員還需要根據(jù)openid生成sessiontoken作為服務(wù)器和小程序之間做登錄態(tài)校驗(yàn)保證安全性,客戶端每次請(qǐng)求需要帶上sessiontoken,后端需要作校驗(yàn);
- 還需要提供接口給客戶端保存用戶信息(頭像、名稱等),或者根據(jù)openid去和微信換取用戶信息;
- 中間的過程的調(diào)試還需要花費(fèi)大量的時(shí)間
利用bmob的小程序sdk的實(shí)現(xiàn)一鍵登錄:
以上后端開發(fā)工作全省了??!
wx.login({
success: function (res) {
var user = new Bmob.User();//實(shí)例化
user.loginWithWeapp(res.code).then(function (user) {
if (user.get("nickName")) {
//更新緩存中的openid
wx.setStorageSync('openid', user.get("openid"))
} else {
//*************保存用戶其他信息,比如昵稱頭像之類的*****************
wx.getUserInfo({
success: function (result) {
var nickName = result.userInfo.nickName;
var avatarUrl = result.userInfo.avatarUrl;
var u = Bmob.Object.extend("_User");
var query = new Bmob.Query(u);
// 這個(gè) id 是要修改條目的 id,你在生成這個(gè)存儲(chǔ)并成功時(shí)可以獲取到,請(qǐng)看前面的文檔
query.get(user.id, {
success: function (result) {
// 自動(dòng)綁定之前的賬號(hào)
result.set('nickName', nickName);
result.set("userPic", avatarUrl);
result.set("openid", openid);
result.save();
}
});
}
});
//*************保存用戶其他信息,比如昵稱頭像之類的end*****************
}
}, function (err) {
console.log(err, 'errr');
});
}
});
}
user用戶對(duì)象中的loginWithWeapp方法使用當(dāng)前使用小程序的微信用戶身份注冊(cè)或登錄,成功后用戶的 session 會(huì)在設(shè)備上持久化保存,之后可以使用 Bmob.User.current() 獲取當(dāng)前登錄用戶
如果該用戶是第一次使用此應(yīng)用,調(diào)用登錄 API 會(huì)創(chuàng)建一個(gè)新的用戶,你可以在 控制臺(tái) >應(yīng)用> 數(shù)據(jù) 中的 _User表中看到該用戶的信息,如果該用戶曾經(jīng)使用該方式登錄過此應(yīng)用,再次調(diào)用登錄 API 會(huì)返回同一個(gè)用戶。
登錄后獲取到一個(gè)用戶數(shù)據(jù)對(duì)象,包括用戶唯一標(biāo)識(shí)objectId、openid、nickName、avatarUrl、authData,authData包括sessiontoken登錄校驗(yàn),小程序sdk封裝了請(qǐng)求帶上了緩存authData的sessiontoken,所以session_token這部分 不需要bmob的開發(fā)者考慮;
當(dāng)前用戶
如果用戶每次打開App的時(shí)候都要求登錄無(wú)疑是令人感到厭煩的,你可以通過緩存當(dāng)前的Bmob.User對(duì)象來(lái)避免這個(gè)問題。
無(wú)論你使用任何注冊(cè)或者登錄方法,用戶都會(huì)在localStorage中儲(chǔ)存,你可以把緩存作為一個(gè)session對(duì)待,并且自動(dòng)假設(shè)用戶已經(jīng)登錄了。
你可以操作Bmob.User.current()來(lái)獲取當(dāng)前用戶的信息
var currentUser = Bmob.User.current();
用戶安全
Bmob.User類默認(rèn)就是受保護(hù)的,在Bmob.User中保存的數(shù)據(jù)只能被那個(gè)用戶所修改。默認(rèn)地,數(shù)據(jù)仍然可以被任意客戶端所讀取。這樣就是說(shuō),有些Bmob.User對(duì)象被認(rèn)證后是可以修改的,其他的仍然是只讀的。
特別的,你不能調(diào)用save或者delete方法除非Bmob.User經(jīng)過了認(rèn)證,就比如調(diào)用過了logIn或者signUp方法,這樣保證只有用戶能改動(dòng)他們自身的數(shù)據(jù)。
相關(guān)案例查看更多
相關(guān)閱讀
- 旅游網(wǎng)站建設(shè)
- 云南網(wǎng)站建設(shè)百度官方
- 專業(yè)網(wǎng)站建設(shè)公司
- 云南省城鄉(xiāng)建設(shè)廳網(wǎng)站
- 云南網(wǎng)站建設(shè)首選公司
- 網(wǎng)站維護(hù)
- 云南網(wǎng)站建設(shè)優(yōu)化
- 云南省建設(shè)廳網(wǎng)站
- 網(wǎng)站小程序
- 海南小程序制作公司
- 云南軟件設(shè)計(jì)
- 網(wǎng)站制作哪家好
- 云南網(wǎng)絡(luò)營(yíng)銷顧問
- 云南小程序公司
- 昆明做網(wǎng)站建設(shè)的公司排名
- 網(wǎng)站建設(shè)招商
- 云南小程序開發(fā)制作
- 汽車回收管理系統(tǒng)
- 小程序退款
- 昆明小程序設(shè)計(jì)
- 云南小程序開發(fā)報(bào)價(jià)
- 汽車報(bào)廢回收管理軟件
- 云南省住房建設(shè)廳網(wǎng)站
- 買小程序被騙
- 昆明做網(wǎng)站
- 云南小程序開發(fā)制作公司
- 云南網(wǎng)站建設(shè)快速優(yōu)化
- 快排推廣
- 小程序被攻擊
- 云南小程序開發(fā)首選品牌