微信小程序 登陆流程详细介绍


Posted in Javascript onJanuary 17, 2017

微信小程序 登陆流程

1:session_key和openId是什么?session_key

官方说明为:

session_key是微信服务器生成的针对用户数据进行加密签名的密钥

session_key的用途

(1)对wx.getUserInfo()接口得到“用户信息中的密文”进行解密。
(2)对它“稍作处理”,用作维护小程序的登录态。

“稍微处理”大体为:

(1)生成一个随机数(官方把他叫做3rd_session)
(2)把这个随机数当session的key,session_key + openid为value。

即:session[3rd_session]=session_key+openid

openIdopenId:用户唯一标识

即:每个微信用户在你的小程序的唯一的标识。

微信小程序 登陆流程详细介绍

 2:如何获得session_key和openId官方提供了HTTP接口:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

获取步骤:

(1)获得appid,secret,js_code 
(2)用appid,secret,js_code分别替换如上接口地址的APPID、SECRET、JSCODE,其他不变,组装成完整的地址。

例如:

微信小程序 登陆流程详细介绍 

3:在“浏览器打开此地址”或者“在后台模拟浏览器的GET执行此地址”就可返回如下的JSON数据(包含openid、sessionkey)

微信小程序获得session_key和openId(加解密、签名系列)

总结:从1,2,3步骤可知,只要获得appid,secret,js_code就可得到session_key和openId

微信小程序 登陆流程详细介绍

 4:appid和secret的获得

appid为小程序ID

secret为小程序密钥(AppSecret)

获得方法:小程序后台登录网址:https://mp.weixin.qq.com/

打开小程序后台网址、注册、登录后,按如下图所示就可找到你的AppID和AppSecret。

微信小程序获得session_key和openId(加解密、签名系列)

注意:目前小程序个人不能注册,开放注册范围:企业、政府、媒体、其他组织;当然用这个办法,个人也能注册了。

传送门:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=495

5:js_code如何获得调用wx.login()接口就可获取登录凭证(js_code)

微信小程序获得session_key和openId(加解密、签名系列)

微信小程序 登陆流程详细介绍

 6:总结整个session_key获取的流程

(1)注册微信小程序、登录后台在设置中获得appId和secret(密钥)
(2)调用wx.login()接口获取登录凭证js_code
(3)调用wx.request()接口把js_code发送到服务器后台
(4)在服务器后台,已知appId、secret、js_code

然后调用如下官方提供的http接口,即可返回获取openId、session_key

官方提供了http接口地址为:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
javascript offsetX与layerX区别
Mar 12 Javascript
js变量以及其作用域详解
Jul 18 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
Sep 04 Javascript
JQuery遍历DOM节点的方法
Jun 11 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
纯原生js实现table表格的增删
Jan 05 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
Dec 27 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 Javascript
jQuery实现视频展示效果
May 30 jQuery
js实现纯前端压缩图片
Nov 16 Javascript
Js利用正则表达式去除字符串的中括号
Nov 23 Javascript
jQuery无刷新上传之uploadify简单代码
Jan 17 #Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
Jan 17 #Javascript
js处理层级数据结构的方法小结
Jan 17 #Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 #Javascript
JavaScript的事件机制详解
Jan 17 #Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 #Javascript
深入理解javascript中的 “this”
Jan 17 #Javascript
You might like
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
php实现学生管理系统
2020/03/21 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
python使用递归解决全排列数字示例
2014/02/11 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
银行求职推荐信范文
2013/11/30 职场文书
个人自我鉴定写法
2013/11/30 职场文书
自主招生自荐信
2013/12/08 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
python非标准时间的转换
2021/07/25 Python