小程序 之登录 wx.login()
小程序的登录关键在于使用wx.login()方法后,要到取到code值传到后台,
再用小程序平台本帐号生成的appid+addsecret+code去微信接口服务取得用户唯一标识后即可登录【注意:此步骤必须要在本项目后台服务中才能成功,在小程序端是无效的】
appid+addsecret
下图是官方的登录流程图:
放上代码
showTopTips:function(e){ //登录/注册提交事件
if (userName==''){
app.toastShow(this, "请输入手机号", "error");
} else if (userPassword==''){
app.toastShow(this, "请输入验证码", "error");
}else{
var that = this
wx.login({//调用获取用户openId
success: function (res) {
var loginDevice = 'W'; //唯一标识 = W + 临时code值
loginDevice = loginDevice + res.code //临时code值
var appid = '1100310183560349'; //appid wxf79825c96701f981
var timestamp = Date.parse(new Date());//获取当前时间戳
timestamp = timestamp / 1000;
var version = '1.0'; //版本号
var sign = 'erwlkrjlkwjelrjwlke'; //签名
var timestamp = Date.parse(new Date());//获取当前时间戳
timestamp = timestamp / 1000;
var loginChannel = '1003'; //登录渠道:1001 ios手机 1002 android手机 1003 微信小程序 1004 手机H5
wx.request({
method: "post",
url: 'http://uat.*****.com/xiao***/user/baseInfo/userLogin', //仅为示例,并非真实的接口地址
data: '{"appId": "' + appid + '", "timestamp": ' + timestamp + ', "version": "' + version + '", "sign": "' + sign + '", "mobile": "' + userName + '","validateCode":"' + userPassword + '","loginChannel":"' + loginChannel + '","loginDevice":"' + loginDevice + '",}@#@1100310183560349' //"validateWay": 1, "validateType": 2
,
dataType: "json",
header: {
'content-type': 'application/json' // 默认值
},
success: function (res) {
var userIdEnc = res.data.data.userIdEnc; //用户唯一标识
var loginDevice = res.data.data.loginDevice;
wx.setStorageSync('userIdEnc', userIdEnc); //将userIdEnc存入本地缓存
wx.setStorageSync('loginDevice', loginDevice);//将loginDevice存入本地缓存 that.redirectToIndex(); // that.setData({
// id_token: res.data.id_token,
// response: res
// })
// try {
// wx.setStorageSync('id_token', res.data.id_token)
// } catch (e) {
// } if (res.code == '0000') {
console.log("注册成功");
// wx.redirectTo({
// url: '../../pages/index/index',
// })
} else if (res.code == '1002') { //超时
that.errorShow('超时');
} else if (res.code == '1002') { //帐号冻结
that.errorShow('帐号冻结');
} else { //失败
that.errorShow('注册/登录失败');
} },
fail: function (res) {
//console.log(res.data);
console.log('is failed')
}
}) }, fail: function (res) {
console.log('获取临时code失败!' + res.errMsg)
}
}) }
},
小程序 之登录 wx.login()的更多相关文章
- 微信小程序API 登录-wx.login(OBJECT) + 获取微信用户唯一标识openid | 小程序
wx.login(OBJECT) 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key).用户数据的加解密通讯需要 ...
- 微信小程序-bug-调用wx.login()无响应的原因和解决方案
想必,最近有些小程序开发者,在调用wx.login()的时候,在部分IOS上无响应的情况: 补充一点:在测试模式,调试模式,都是OK的,一上正式环境就GG了,百思不得其解啊! 响应结果如下: 在suc ...
- 微信小程序 用户登录 服务器端(TP5.1)实现
先来看官方提供的流程图: 客户端: 小程序客户端通过 wx.login() 获取登录code , 然后将code当做参数传递到服务器. getToken(){ var that = this; wx. ...
- 微信小程序之登录连接django,以及用户的信息授权认证
小结: 1 如何自定义组件 - 组件和页面一样,也是由四个文件组成,所以我们自定义组件的时候,模拟pages文件夹,把所有的所有的组件都放在一个文件夹中,每个组件又由一个文件夹包裹,方便管理,在对应目 ...
- 微信小程序之登录态维护(十一)
[未经作者本人同意,请勿以任何形式转载] >什么是登录态? 所谓登录态,就是程序在运行时,能够识别当前用户,能够证明自己的唯一性且合法. 我们知道,WEB服务器通过浏览器携带的cookie获取s ...
- php(ThinkPHP)实现微信小程序的登录过程
源码也在我的github中给出 https://github.com/wulongtao/think-wxminihelper 下面结合thinkPHP框架来实现以下微信小程序的登录流程,这些流程是结 ...
- 小程序版好友对战实战-wss部署与小程序用户登录时序
上一篇文章是对需求的分析,本次将逐渐进入代码阶段.本次主要的内容包括服务端wss的部署以及小程序端用户授权的时序及逻辑. wss的配置与部署 微信小程序出于安全考虑,要求所有涉及到网络的操作,必须使用 ...
- 微信小程序授权登录
目录 自定义授权页面 点击授权登录后出现微信自带的授权登录弹窗 <!--index.wxml--> <!-- 授权界面 --> <cover-view class='au ...
- 微信小程序微信登录
开发接口 登录 wx.login wx.checkSession 签名加密 小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 登录流程时序 ...
随机推荐
- PHP 日常开发过程中的bug集合(持续更新中。。。)
PHP 日常开发过程中的bug集合(持续更新中...) 在日常php开发过程中,会遇到一些意想不到的bug,所以想着把这些bug记录下来,以免再犯! 1.字符串 '0.00'.'0.0'.'0' 是 ...
- MySQL中 IFNULL、NULLIF和ISNULL函数的用法
mysql 中 ifnull().nullif().isnull()函数的用法讲解: 一.IFNULL(expr1,expr2)用法: 假如expr1不为NULL,则 IFNULL() 的返回值为ex ...
- python-for循环与while循环
while 循环 格式: while 条件 为 True: 代码块 while True: rayn_age = 18 age = input('请输入你的年龄:') age = int(age) i ...
- LeetCode(206) Reverse Linked List
题目 Reverse a singly linked list. click to show more hints. Hint: A linked list can be reversed eithe ...
- static 的三个作用
1).用于声明函数体内的变量为静态局部变量,存储在静态数据存储区,在函数被调用过程中维持其值保持不变 2).在文件内(函数体外)被声明为静态的变量,可以被文件内的所有函数访问,但不能被其他文件的函数访 ...
- VSCode编译C/C++(一)MinGW安装配置指南
为什么不用IDE? 更加专业.轻便.其过程对于理解计算机也有更多的帮助 安装过程: 首先进入http://mingw.org/ ,点击右侧最新发布,可以下载,然后安装 点击桌面MinGWInstal ...
- 中国首届CSS开发者大会讲师照片
中国首届CSS开发者大会讲师照片 Bert Bos Winter 点头猪 灭灭 jaychsu Hax 尤雨溪 一丝 勾三股四 小倩 **
- 写iOS SDK注意事项
转载http://www.devtang.com/blog/2015/01/31/write-sdk-tips/
- Spring 4.3.11.RELEASE文档阅读(一):overview
一.宏观概述中的体会和发现 Spring是组件式的框架,它允许我们只使用其一小部分.Spring所做的工作,就是不断的简化我们的操作.比如它的IOC容器,当我们自己应用设计模式,比如说:建造者.工厂. ...
- SPFA ----模板 O(kE) (k一般不超过2)
原理:若一个点入队的次数超过顶点数V,则存在负环: #include "bits/stdc++.h" using namespace std; ; struct Edge { in ...