애플릿 클라우드 개발 로그인 프로세스
1962 단어 애플릿
onLoad: function () {
that=this
getOpenid()
}
})
// openid
function getOpenid() {
wx.cloud.callFunction({
name: 'login',
data: {},
success: res => {
app.globalData.openid = res.result.openid
getUserInfo()
},
fail: err => {
console.error('[ ] [login] ', err)
}
})
}
function getUserInfo() {
db.collection('mall_user').where({
_openid: app.globalData.openid
}).get().then(
res => {
console.log(res)
if (res.data.length){
app.globalData.userInfo = res.data[0].userInfo
}
}
)
}
클라우드 함수login/index.js
exports.main = (event, context) => {
console.log(event)
console.log(context)
// WX Context ( ), OPENID、APPID、 UNIONID( UNIONID )
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
user.js
onLoad(){
that=this
if(app.globalData.userInfo){
this.setData({
avatarUrl: app.globalData.userInfo.avatarUrl
})
}
}
//
onGetUserInfo: function (e) {
if (!e.detail.userInfo) return//
app.globalData.userInfo = e.detail.userInfo
that.setData({
avatarUrl: e.detail.userInfo.avatarUrl,
})
//
db.collection('mall_user').where({
_openid: app.globalData.openid
}).get().then(
res => {
console.log(res)
if (res.data.length==0){//
db.collection('mall_user').add({
data: {
userInfo: e.detail.userInfo
}
})
} else {//
db.collection('mall_user').doc(res.data[0]._id).update({
data: {
userInfo: e.detail.userInfo
}
})
}
}
)
}