安卓开发 登录用户信息缓存_小程序云开发之用户注册登录
小程序 · 云開發已經上線到現在也已經快有兩年了,期間自己也基于云開發發布了幾個小程序,總得來說,對于前端開發者來說,確實方便了很多。不用買服務器、域名,不需要搭建數據庫、靜態存儲應用。通過平臺提供的簡 API 就可以進行核心業務的開發。
之前,如果我們想要開發一個小程序,運維人員需要考慮買什么樣的服務器,匹配哪些資源,比如存儲應用、數據庫等,后端開發人員需要編寫服務接口,前端人員需要編寫頁面,對接后端提供的接口,這個工作流程下來,需要至少一個月的時間。有了“小程序 · 云開發”以后,開發者不用考慮后端復雜的技術操作,一個前端開發者就可以輕松的完成從無到有、從開發到發布的過程。
1?搭建基礎環境
今天就簡單的用云開發完成用戶注冊及登錄,首先我們需要有個APPID(小程序ID)
新建小程序項目,選擇后端服務 -“小程序 · 云開發”
項目初始化完成,目錄結構如下
cloudfunctions是云函數的目錄
miniprogram是我們寫前端頁面的目錄
默認新建項目是沒有云環境的,需要我們自己初始化,并創建環境名稱
項目里使用創建的環境,在app.js文件配置
onLaunch:?function?()?{??if?(!wx.cloud)?{
????console.error('請使用?2.2.3?或以上的基礎庫以使用云能力')
??}?else?{
????wx.cloud.init({
??????env:?'prd-yymsa'
??????//?env:?'dev-zvjun'
????})
??}
},
我創建了兩個。一個是開發環境,一個是生產環境,并且一個小程序也只能創建兩個,在之前,環境只能創建,不能刪除,現在也已經支持刪除。
到這里,我們基礎環境已經搭建完成,接下來就是如何編寫代碼了。
2?編寫邏輯代碼
1.獲取用戶
cloudfunctions目錄新建Node.js云函數,名字getUser,內容如下
1const?cloud?=?require('wx-server-sdk')2cloud.init({?env:?cloud.DYNAMIC_CURRENT_ENV?})
3const?db?=?cloud.database()
4exports.main?=?async?(event,?context)?=>?{
5??const?wxContext?=?cloud.getWXContext()
6??return?await?db.collection('user').where({
7????openid:?wxContext.OPENID
8??}).get().then(res?=>?{
9????return?res
10??})
11}
第一行,引入sdk
第二行,使用設置的云函數環境
第三行,初始化db
第四行到最后,這里面就是我們要寫的邏輯,這里是返回user表的指定openid的值
一個簡單的查詢用戶接口就完成了
2?新增用戶
cloudfunctions目錄新建Node.js云函數,名字addUser,內容如下
1const?cloud?=?require('wx-server-sdk')2cloud.init({?env:?cloud.DYNAMIC_CURRENT_ENV?})
3const?db?=?cloud.database()
4exports.main?=?async?(event,?context)?=>?{
5??const?wxContext?=?cloud.getWXContext()
6??return?await?db.collection('user').add({
7????data:?{
8??????openid:?wxContext.OPENID,
9??????nickName:?event.nickName,
10??????gender:?event.gender,
11??????language:?event.language,
12??????city:?event.city,
13??????province:?event.province,
14??????country:?event.country,
15??????avatarUrl:?event.avatarUrl,
16??????role:?"user"
17????},
18??})
19}
這里也不用過多解釋,第一、二、三行,都一樣、四行到最后是向user表插入數據。
2?更新用戶
cloudfunctions目錄新建Node.js云函數,名字updateUser,內容如下
1const?cloud?=?require('wx-server-sdk')2cloud.init({?env:?cloud.DYNAMIC_CURRENT_ENV?})
3const?db?=?cloud.database()
4exports.main?=?async?(event,?context)?=>?{
5??const?wxContext?=?cloud.getWXContext()
6??return?await?db.collection('user').where({
7????openid:?wxContext.OPENID
8??})
9????.update({
10??????data:?{
11????????nickName:?event.nickName,
12????????gender:?event.gender,
13????????language:?event.language,
14????????city:?event.city,
15????????province:?event.province,
16????????country:?event.country,
17????????avatarUrl:?event.avatarUrl
18??????},
19????})
20}
代碼基本和新增用戶一樣,只不過是我們這次要在插入的是指定openid的值。
到這里,新增、修改、查詢接口已經完成了、接下來就是我們寫前端調用了。
3 編寫調用代碼
如果都看到這了,說明你是需要的,那說明你的小程序肯定也有用戶個人中心頁面,我的邏輯是,用戶如果首次使用小程序,則需要登錄,如果不是,之后就不在需要點擊登錄,直接獲取用戶信息,畢竟云開發是可以直接獲取用戶openid,
1?登錄
gologin(e)?{??let?that?=?this
??wx.cloud.callFunction({
????name:?'getUser',
??}).then(res?=>?{
????if?(res.result.data?==?'')?{
??????wx.cloud.callFunction({
????????name:?'addUser',
????????data:?{
??????????nickName:?e.detail.userInfo.nickName,
??????????gender:?e.detail.userInfo.gender,
??????????language:?e.detail.userInfo.language,
??????????city:?e.detail.userInfo.city,
??????????province:?e.detail.userInfo.province,
??????????country:?e.detail.userInfo.country,
??????????avatarUrl:?e.detail.userInfo.avatarUrl
????????}
??????}).then(addres?=>?{
????????that.setData({
??????????userInfo:?e.detail.userInfo
????????})
????????wx.setStorageSync('userInfo',?JSON.stringify(e.detail.userInfo))
??????})
????}?else?{
??????that.setData({
????????userInfo:?res.result.data[0]
??????})
??????wx.setStorageSync('userInfo',?JSON.stringify(res.result.data[0]))
????}
??})
},
這個方法也比較簡單,先去查詢用戶,如果沒有,我就新增,如果有,就緩存本地。更新的方法就不展示了,用法基本一樣。
簡單理解,就是騰訊云把小程序開發的服務端已經搭好,開發者看不到、也不需要看到后臺架構如何搭建,更不用操心后臺的穩定性和安全性問題,直接調用接口,寫小程序端代碼就可以了。
總結
以上是生活随笔為你收集整理的安卓开发 登录用户信息缓存_小程序云开发之用户注册登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python游戏代码示例_练习项目20:
- 下一篇: squid 不缓存特定页面_【零基础学云