免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

基于bmob快速搭建小程序用戶模塊(包括登錄、當(dāng)前用戶、用戶安全) ...

發(fā)布時(shí)間:2018-02-10 10:45 所屬欄目:小程序開發(fā)教程

一鍵登錄

 

開發(fā)小程序登錄后端工作:

  • 客戶端調(diào)用wx.login()后獲取的code,后端人員拿到code和微信換取openid和session_key;
  • 除此之外后端人員還需要根據(jù)openid生成sessiontoken作為服務(wù)器和小程序之間做登錄態(tài)校驗(yàn)保證安全性,客戶端每次請求需要帶上sessiontoken,后端需要作校驗(yàn);
  • 還需要提供接口給客戶端保存用戶信息(頭像、名稱等),或者根據(jù)openid去和微信換取用戶信息;
  • 中間的過程的調(diào)試還需要花費(fèi)大量的時(shí)間

利用bmob的小程序sdk的實(shí)現(xiàn)一鍵登錄:
以上后端開發(fā)工作全省了?。?/p>

   
 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è)存儲并成功時(shí)可以獲取到,請看前面的文檔
                  query.get(user.id, {
                    success: function (result) {
                      // 自動綁定之前的賬號
                      result.set('nickName', nickName);
                      result.set("userPic", avatarUrl);
                      result.set("openid", openid);
                      result.save();
                    }
                  });
                }
              });
              //*************保存用戶其他信息,比如昵稱頭像之類的end*****************
            }
          }, function (err) {
            console.log(err, 'errr');
          });
        }
      });
    }


user用戶對象中的loginWithWeapp方法使用當(dāng)前使用小程序的微信用戶身份注冊或登錄,成功后用戶的 session 會在設(shè)備上持久化保存,之后可以使用 Bmob.User.current() 獲取當(dāng)前登錄用戶

如果該用戶是第一次使用此應(yīng)用,調(diào)用登錄 API 會創(chuàng)建一個(gè)新的用戶,你可以在 控制臺 >應(yīng)用> 數(shù)據(jù) 中的 _User表中看到該用戶的信息,如果該用戶曾經(jīng)使用該方式登錄過此應(yīng)用,再次調(diào)用登錄 API 會返回同一個(gè)用戶。

登錄后獲取到一個(gè)用戶數(shù)據(jù)對象,包括用戶唯一標(biāo)識objectId、openid、nickName、avatarUrl、authData,authData包括sessiontoken登錄校驗(yàn),小程序sdk封裝了請求帶上了緩存authData的sessiontoken,所以session_token這部分 不需要bmob的開發(fā)者考慮;


當(dāng)前用戶

 

如果用戶每次打開App的時(shí)候都要求登錄無疑是令人感到厭煩的,你可以通過緩存當(dāng)前的Bmob.User對象來避免這個(gè)問題。

無論你使用任何注冊或者登錄方法,用戶都會在localStorage中儲存,你可以把緩存作為一個(gè)session對待,并且自動假設(shè)用戶已經(jīng)登錄了。

你可以操作Bmob.User.current()來獲取當(dāng)前用戶的信息


var currentUser = Bmob.User.current();

用戶安全

 

Bmob.User類默認(rèn)就是受保護(hù)的,在Bmob.User中保存的數(shù)據(jù)只能被那個(gè)用戶所修改。默認(rèn)地,數(shù)據(jù)仍然可以被任意客戶端所讀取。這樣就是說,有些Bmob.User對象被認(rèn)證后是可以修改的,其他的仍然是只讀的。

特別的,你不能調(diào)用save或者delete方法除非Bmob.User經(jīng)過了認(rèn)證,就比如調(diào)用過了logIn或者signUp方法,這樣保證只有用戶能改動他們自身的數(shù)據(jù)。



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/21907.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服