微信小程序云开发用户身份登录_微信小程序云开发实现授信注册登录?
頁面樣式想實現點此登錄然后彈出授權用戶確定后顯示用戶頭像和昵稱。
后臺實現,用戶點擊授權后,獲取用戶信息和openid,去云數據庫里找,如果沒有就獲取用戶信息保存。然后再使用openid去查找用戶信息,然后再將用戶信息存入app.js公共變量里。實現登陸。
// miniprogram/pages/user/user.js
var util = require('../tools/tools.js')
const app = getApp();
const db = wx.cloud.database()
Page({
/**
* 頁面的初始數據
*/
data: {
userInfo: '',
logged: ''
},
bindGetUserInfo: function (e) {
var taxt = this;
wx.getSetting({
success: function (e) {
if (e.authSetting['scope.userInfo']) {
// 調用云函數獲取openid
wx.showLoading({
title: '登錄中...',
})
wx.cloud.callFunction({
// 要調用的云函數名稱
name: 'login',
// 傳遞給云函數的event參數
data: {}
}).then(res => {
//查看用戶是否注冊過了
db.collection('user').where({
_openid: res.result.openid // 填入當前用戶 openid
}).get().then(re => {
if (re.data.length > 0) {
//已經保存過用戶信息
} else {
//未保存獲取用戶信息
wx.getUserInfo({
success: function (r) {
//保存
var DATE = util.formatDate(new Date());
db.collection('user').add({
// data 字段表示需新增的 JSON 數據
data: {
nickName: r.userInfo.nickName,
avatarUrl: r.userInfo.avatarUrl,
gender: r.userInfo.gender,
province: r.userInfo.province,
city: r.userInfo.city,
country: r.userInfo.country,
adddata: DATE,
phone: ''
}
}).then(res => {
console.log(res)
})
.catch(console.error)
}
})
}
db.collection('user').where({
_openid: res.result.openid // 填入當前用戶 openid
}).get().then(res => {
app.globalData.userInfo = re.data[0],
app.globalData.userid = re._openid,
app.globalData.logged = true,
wx.setStorageSync('userInfo', app.globalData.userInfo);
})
taxt.setData({
userInfo: app.globalData.userInfo,
logged: app.globalData.logged
})
wx.hideLoading()
})
}).catch(err => {
// handle error
})
} else {
//用戶沒有授權
console.log("用戶沒有授權");
}
}
})
},
/**
* 生命周期函數--監聽頁面加載
*/
onLoad: function (options) {
},
/**
* 生命周期函數--監聽頁面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函數--監聽頁面顯示
*/
onShow: function () {
},
/**
* 生命周期函數--監聽頁面隱藏
*/
onHide: function () {
},
/**
* 生命周期函數--監聽頁面卸載
*/
onUnload: function () {
},
})
但是現在寫的有點懵,需要點擊兩次點此登錄才能顯示頭像,而且感覺寫的很麻煩。所以想請教各位大大我哪里是有問題的。
總結
以上是生活随笔為你收集整理的微信小程序云开发用户身份登录_微信小程序云开发实现授信注册登录?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联网 云端java架构_基于java的
- 下一篇: 河南省“第三届金盾信安杯“部分WP