教你簡單實現(xiàn)小程序的一鍵登錄、當前用戶蟋恬、用戶安全功能

一鍵登錄

傳統(tǒng)開發(fā)小程序登錄后端工作:

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

利用bmob的小程序sdk的實現(xiàn)一鍵登錄
以上后端開發(fā)工作全省了!0绯取刃!

    wx.login({
        success: function (res) {
          var user = new Bmob.User();//實例化          
          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);
                  // 這個 id 是要修改條目的 id出刷,你在生成這個存儲并成功時可以獲取到璧疗,請看前面的文檔
                  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方法使用當前使用小程序的微信用戶身份注冊或登錄馁龟,成功后用戶的 session 會在設(shè)備上持久化保存崩侠,之后可以使用 Bmob.User.current() 獲取當前登錄用戶

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

登錄后獲取到一個用戶數(shù)據(jù)對象僧家,包括用戶唯一標識objectId、openid裸删、nickName八拱、avatarUrl、authData涯塔,authData包括session_token登錄校驗肌稻,小程序sdk封裝了請求帶上了緩存authData的session_token,所以session_token這部分 不需要bmob的開發(fā)者考慮匕荸;


當前用戶

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

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

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

var currentUser = Bmob.User.current();

用戶安全

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

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

怎么樣,都很簡單吧篓叶!

Bmob地址:www.bmob.cn

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烈掠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缸托,更是在濱河造成了極大的恐慌左敌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俐镐,死亡現(xiàn)場離奇詭異矫限,居然都是意外死亡,警方通過查閱死者的電腦和手機佩抹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門叼风,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棍苹,你說我怎么就攤上這事无宿。” “怎么了枢里?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵孽鸡,是天一觀的道長。 經(jīng)常有香客問我栏豺,道長彬碱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任奥洼,我火速辦了婚禮巷疼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘灵奖。我一直安慰自己嚼沿,他們只是感情好,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布桑寨。 她就那樣靜靜地躺著伏尼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尉尾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天燥透,我揣著相機與錄音沙咏,去河邊找鬼辨图。 笑死,一個胖子當著我的面吹牛肢藐,可吹牛的內(nèi)容都是我干的故河。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼吆豹,長吁一口氣:“原來是場噩夢啊……” “哼鱼的!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起痘煤,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凑阶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后衷快,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宙橱,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年蘸拔,在試婚紗的時候發(fā)現(xiàn)自己被綠了师郑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡调窍,死狀恐怖宝冕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邓萨,我是刑警寧澤地梨,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站先誉,受9級特大地震影響湿刽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜褐耳,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一诈闺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铃芦,春花似錦雅镊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咧虎,卻和暖如春卓缰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工征唬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捌显,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓总寒,卻偏偏與公主長得像扶歪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子摄闸,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容