微信小程序-----校园头条详细开发之注册登录
1.注册登录功能的实现
1.1结构


1.2 代码实现
1.2.1 为了通信的安全着想,在此我是通过小程序端获得code,然后传递给后端,在后端向微信后台发送api请求,解密,从而得到用户的唯一标示openId
1.2.2 进登录界面之前,优先通过oppid查询用户是否存在,存在直接跳过进入首页,没有存在就注册到数据库,并拿掉用户信息,保存
const app = getApp()
Page({
data: {
//判断小程序的API,回调,参数,组件等是否在当前版本可用。
canIUse: wx.canIUse('button.open-type.getUserInfo'),
casArray: null,
schoolId: 0,
num: null
},
onLoad: function() {
var that = this;
app.getOpenId().then(function(res) { wx.request({
url: 'http://xxxxxxx:8080/webchat/login/queryallschool',
header: {
'content-type': 'application/json'
},
success: res => {
console.log(res.data)
//从数据库获取用户信息
that.setData({
casArray: res.data.data.messages
})
}
})
//从数据库获取用户信息
that.queryUsreInfo();
// if (app.globalData.userInfo != null) {
// wx.switchTab({
// url: '../index/index',
// })
// } }) }, bindGetUserInfo: function(e) {
if (e.detail.userInfo) {
//用户按了允许授权按钮
var that = this;
//插入登录的用户的相关信息到数据库
wx.request({
url: 'http://xxxxxxxx:8080/webchat/login/adduser',
data: {
openId: app.globalData.openId,
nickName: e.detail.userInfo.nickName,
avatarUrl: e.detail.userInfo.avatarUrl,
province: e.detail.userInfo.province,
city: e.detail.userInfo.city,
country: e.detail.userInfo.country,
gender: e.detail.userInfo.gender,
schoolId: that.data.schoolId,
studentNumber: that.data.num
},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
method: 'POST',
success: res => {
//从数据库获取用户信息
that.queryUsreInfo();
}
});
//授权成功后,跳转进入小程序首页
// wx.switchTab({
// url: '../index/index',
// })
} else {
//用户按了拒绝按钮
wx.showModal({
title: '警告',
content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',
showCancel: false,
confirmText: '返回授权',
success: function(res) {
if (res.confirm) {
console.log('用户点击了“返回授权”')
}
}
})
}
},
//获取用户信息接口
queryUsreInfo: function() {
wx.request({
url: 'http://xxxxxx:8080/webchat/login/queryuser',
data: {
openId: app.globalData.openId
},
header: {
'content-type': 'application/json'
},
success: function(res) {
console.log(res.data);
app.globalData.userInfo = res.data.data.userInfo;
if (res.data.data.userInfo != null) {
wx.switchTab({
url: '../index/index',
})
} }
});
},
bindCasPickerChange: function(e) {
console.log(e)
var that = this;
that.setData({ casId: e.detail.value,
schoolId: that.data.casArray[e.detail.value].schoolId
})
},
formSubmit: function(e) {
this.data.num = e.detail.value.num;
}
})
登录验证,注册,保存用户信息
1.3 技术难点
1)动态存储后台等到的数据 this.data
2)微信小程序默认的wx.request是异步请求,对于登录验证跳转不合适,需要改成同步请求
微信小程序-----校园头条详细开发之注册登录的更多相关文章
- 微信小程序-----校园头条详细开发之首页
1.首页展示功能的实现 1.1 结构 1.2 代码实现 1.2.1 界面的设计这里就不多说了,样式都是我自己写的,还有就是页面的跳转,看详细代码 var app = getApp() Page({ ...
- 微信小程序-----校园头条详细开发之列表展示数据
1.分类列表数据展示功能的实现 1.1 结构 1.2 代码实现 1.2.1 列表显示数据,.每次界面显示6条数据,发请求获取数据,动态存放 var app = getApp() Page({ dat ...
- 微信小程序-----校园头条整体概括
1.项目需求 为了让在校师生可以更加方便的了解学校信息,从而合理的安排自己的时间,避免发生冲突和错过事件,通过小程序的便利性,可以达到随手一查的功能. 2.项目布局 3.效果展示 3.1登录 3.2首 ...
- 微信小程序版博客——开发汇总总结(附源码)
花了点时间陆陆续续,拼拼凑凑将我的小程序版博客搭建完了,这里做个简单的分享和总结. 整体效果 对于博客来说功能页面不是很多,且有些限制于后端服务(基于ghost博客提供的服务),相关样式可以参考截图或 ...
- 微信小程序购物商城系统开发系列-目录结构
上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...
- 微信小程序购物商城系统开发系列-工具篇
微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...
- 微信小程序购物商城系统开发系列
微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统. ...
- 从微信小程序到鸿蒙js开发【11】——页面路由
目录: 1.router.push()&wx.navigateTo() 2.router.replace()&wx.redirectTo() 3.router.back()&w ...
- 从微信小程序到鸿蒙js开发【12】——storage缓存&自动登录
鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 正文: 在应用开发时,我们常需要将一些数据缓存到本地,以提升用户体验.比如在一个电商的app中,如果希望用户登录成功后,下次打 ...
随机推荐
- SQL Server 08版与14版处理重复行的方式
在项目中,利用循环拼接成了插入多行数据的SQL语句: Insert into table(col1,col2)vaules(value11,value21); Insert into table(co ...
- 如何处理CloudFoundry应用部署时遇到的254错误
使用SAP云平台的CloudFoundry部署应用: 在cockpit遇到错误信息:instance: a0abe2b5-7623-4cf1-4c65-0c79, index: 0, exit_des ...
- Linux常用的200个命令总结分类
●目录操作命令(6 个) ls tree pwd mkdir rmdir cd ●文件操作命令(7 个) touch cp mv rm ln find rename ●文件查看及处理命令(21 ...
- flash + php对称密钥加密的交互
这几天研究了下php和flash中的对称密钥加密的交互问题,经过研究以后决定,在项目中使用aes加密.问题也就来了,在flash中的加密数据如何与php的amf进行数据交互,最终决定使用base64编 ...
- 深入理解计算机系统_3e 第二章家庭作业 CS:APP3e chapter 2 homework
初始完成日期:2017.9.26 许可:除2.55对应代码外(如需使用请联系 randy.bryant@cs.cmu.edu),任何人可以自由的使用,修改,分发本文档的代码. 本机环境: (有一些需要 ...
- 漫谈 Clustering (5): Hierarchical Clustering
系列不小心又拖了好久,其实正儿八经的 blog 也好久没有写了,因为比较忙嘛,不过觉得 Hierarchical Clustering 这个话题我能说的东西应该不多,所以还是先写了吧(我准备这次一个公 ...
- 版本管理工具-SourceSafe
一.什么是SourceSafe SourceSafe是Micrsoft公司推出的一款支持团队协同开发的配置管理工具,是Visual Studio的套件之一.因为其短小精悍,又继承了微软集成销售的一贯作 ...
- LuceneTest
/** * Created by mhm on 2019/6/24. */@RunWith(SpringJUnit4ClassRunner.class)public class LuceneTest ...
- Servlet 学习小结
一.是什么 是用java编写的服务器端程序.从狭义来讲,servlet是java语言实现的一个接口:广义的servlet是指任何实现了这个servlet接口的类.一般情况下,人们将servlet理解为 ...
- 博学谷-数据分析numpy
import numpy as np print np.version.version np.array([1,2,3,4]) np.arange(15) np.array(range(10)) = ...