页面样式想实现点此登录然后弹出授权用户确定后显示用户头像和昵称。

后台实现,用户点击授权后,获取用户信息和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 () {

},

})

但是现在写的有点懵,需要点击两次点此登录才能显示头像,而且感觉写的很麻烦。所以想请教各位大大我哪里是有问题的。

微信小程序云开发用户身份登录_微信小程序云开发实现授信注册登录?相关推荐

  1. NBA球星信息查询 需求描述 以下是一段包括球员信息的文本,要求编写一个程序,让用户能按照自己喜欢的球队查询其所有球员信 息,并格式化打印出来。 “Carmelo Anthony,Portland

    题目: NBA球星信息查询 需求描述 以下是一段包括球员信息的文本,要求编写一个程序,让用户能按照自己喜欢的球队查询其所有球员信 息,并格式化打印出来. "Carmelo Anthony,P ...

  2. 微信小程序云开发用户身份登录_你必须要掌握的微信小程序云开发

    微信小程序开发已经成为目前最火爆的技能之一,无论是在求职.毕设.兴趣培养等方面都已经成为一项必备技能,而小程序云开发技术的出现更是点燃了整个小程序生态圈. 在2019微信公开课PRO小程序分论坛上,腾 ...

  3. 微信小程序云开发用户身份登录_微信小程序+云开发实现欢迎登录注册

    前段时间和同学一起做了一个小程序,用来参加学校的比赛,完成后把项目内容分割一下,贴到博客上面,算是学习记录和总结吧. 因为是学生党,而且并没有很大的需要,所以选择了微信小程序为开发者提供的" ...

  4. 微信小程序云开发用户身份登录_个人如何使用微信小程序云开发功能

    微信推出了一个小程序云开发工具,开发人员可用云开发和开发微信小程序和小游戏,而且无需设置服务器,云开发为开发人员提供了完整的云支持,削弱了后端和操作维护概念,不需要设置服务器,使用平台提供的API进行 ...

  5. 微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)

    如果开发者拥有多个移动应用.网站应用.和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用.网站应用和公众帐号(包括小程序),用户的 Un ...

  6. 小程序开发用什么编程语言_微信小程序开发教程是什么?费用多少?

    微信小程序如今已经非常常见,渗透到了我们日常生活的方方面面,包括生活服务.出行.点餐.电商购物.企业展示--商家可以开发适合自己行业的小程序,以吸引线上用户,同时提高自身服务运营效率.不过这些不同种类 ...

  7. 微信小程序开发分销制度济南_微信小程序分销规则你清楚吗?

    大家在刚开始接触小程序的时候,好多人都被其中的分销功和简洁应用的模式所带来的红利所吸引,但到如今,使用小程序的用户是多了起来,但真正把小程序运营好的商家却很少.这是为什么呢,原因就在于,商家还不会利用 ...

  8. 微信小程序- css相比,wxss区别?小程序关联微信公众号如何确定用户的唯一性?微信小程序中的用户ID(openid和unionid)

    1 与css相比, wxss区别? 1) 响应式长度 rpx 2) 样式导入 3) 小程序不支持通配符* *{ width:100rpx; height:100rpx; } 2 小程序关联微信公众号如 ...

  9. 用代码打出登录_百度小程序商城用百家号能免费开通,如何操作?

    原创:轻栈 百度智能小程序 一说百度智能小程序,不少商家缓缓打出一个问号,这是什么,怎么没有听说过? 小朋友,你是否有很多问号? 商家只开通微信小程序,完全没有考虑搜索引擎的感受. 百度小程序也是一个 ...

最新文章

  1. python多变量非线性拟合_python实现多变量线性回归(Linear Regression with Multiple Variables)...
  2. 面试了一个 46 岁的程序员,我思绪万千!
  3. C++实现的简单vector
  4. 漂亮的花样边框html代码,手把手教你制作精美边框素材HTML代码
  5. Linux的secureCRT设置字体大小
  6. P1038-神经网络【拓扑排序】
  7. python 实例化方法_Python中__new__()方法的使用和实例化
  8. 每个人都可以创业成功,不要急于求成,慢慢来
  9. java interface作用是什么_Java注解总结:史上最全,有这一篇就够了
  10. 量价交易——寻找妖股的底部结构
  11. 咕咕王小谢的C语言之路————第一章 初遇C语言 第三集 变量与常量
  12. Docker 镜像仓库 Harbor 部署 及 跨数据复制
  13. html,css和js
  14. ARM处理器9种基本寻址方式,和单片机微机原理寻址方式截然不同,(例如没有直接地址寻址,只能间接指针寻址或者寄存器变址寻址,立即数寻址,不是所有立即数都可直接寻址)不可套用理解。需独立学习
  15. linux服务器filesystem,linux mount报错:you must specify the filesystem type的解决方法
  16. ARM中断向量表与响应流程
  17. 下载安装WindowBuilder插件教程
  18. 人与人之间的差别,在于思维模式的不同
  19. 第六章实验报告(函数与宏定义)
  20. java metronic_基于Metronic的Bootstrap开发框架总览

热门文章

  1. c51单片机(预备知识)
  2. 在Mysql中为什么定义varchar(255)?
  3. python subprocess 异步
  4. 汇编学习笔记---2.2物理地址计算
  5. 每块硬盘最多可以有几个扩展分区?各个扩展分区最多可以有多少个逻辑驱动器?请高手告知,谢谢!
  6. python竖式计算_Python 模拟竖式大数乘法
  7. 关于H5 图片上传(全篇)
  8. 关于函数保号性的几个问题
  9. 区块链经典项目factom_云象中标中国光大银行国内信用证区块链项目
  10. 《小岛经济学》五、政府与央行的上帝之手