用bmob簡單實現一鍵登錄功能

一、什么是bmob后端云?這個能用來干什么?

我們在開發項目的時候肯定需要開發服務器的,但在個人開發時除了寫客戶端之外還要再寫服務器端就很麻煩

這時候使用bmob后端云就能完美解決我們這個問題(重點是免費的!!!)

我們只需進行服務器開發即可

bomb后端云官網:Bmob后端云

二、如何使用后端云

登陸注冊一個賬號和看開發文檔;

因為是簡單的東西我就此跳過,涉及相關的操作下面我會詳細提出的

三、使用bmob后端云實現的微信小程序自動登錄

1.網站后臺創建應用

登陸進去用戶中心后點擊左上方的創建應用

填好你要創建的應用相關信息

進行掃碼綁定后創建成功

2.配置小程序密鑰和獲取應用密鑰

登錄微信公眾平臺,進入設置->開發設置來獲取AppID和AppSecret

然后回到bmob,進入設置->應用配置,將AppID和AppSecret填進去即可

3.配置安全域名

進入微信小程序后臺配置里

在設置->開發設置->服務器域名

如圖所示進行配置

4.下載和安裝BmobSDK

點擊下載小程序bmobSDK

使用方法:

①下載將utils目錄復制至項目目錄下

②在App.js初始化SDK

varBmob =require('utils/bmob.js');Bmob.initialize("你的Application ID","你的REST API Key");

Application ID和 REST API Key在后端云的設置->應用秘鑰里獲得

5.小程序相關開發

使用后端云實現一鍵登錄很簡單

固定寫法

只需在APP.js這樣子寫就行了

App({onLaunch:function(){varuser =newBmob.User()//開始注冊用戶user.auth().then(function(obj){console.log('登陸成功')? ? },function(err){console.log('失敗了', err)? ? ? });? },getUserInfo:function(cb){varthat =thisif(this.globalData.userInfo) {typeofcb =='function'&& cb(this.globalData.userInfo)? ? }else{//調用登錄接口 wx.login({success:function(){? ? ? ? ? wx.getUserInfo({success:function(res){? ? ? ? ? ? ? that.globalData.userInfo = res.userInfotypeofcb =='function'&& cb(that.globalData.userInfo)? ? ? ? ? ? }? ? ? ? ? })? ? ? ? }? ? ? })? ? }? },globalData: {userInfo:null}})

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

如果該用戶是第一次使用此應用,調用登錄 API 會創建一個新的用戶,你可以在 控制臺 >應用> 數據中的_User表中看到該用戶的信息,如果該用戶曾經使用該方式登錄過此應用,再次調用登錄 API 會返回同一個用戶。

登錄后獲取到一個用戶數據對象,包括用戶唯一標識objectId、openid、nickName、avatarUrl、authData,authData包括session_token登錄校驗,小程序sdk封裝了請求帶上了緩存authData的session_token,所以session_token這部分 不需要bmob的開發者考慮;

當前用戶

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

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

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

用戶安全

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

特別的,你不能調用save或者delete方法除非Bmob.User經過了認證,就比如調用過了logIn或者signUp方法,這樣保證只有用戶能改動他們自身的數據。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容