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


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 相关文章推荐
List all the Databases on a SQL Server
Jun 21 Javascript
HTML中事件触发列表与解说
Jul 09 Javascript
使用隐藏的new来创建对象
Mar 29 Javascript
jQuery中ajax的get()方法用法实例
Dec 26 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
AngularJS中$http使用的简单介绍
Mar 17 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
Dec 09 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
vue 中 beforeRouteEnter 死循环的问题
Apr 23 Javascript
判断JavaScript中的两个变量是否相等的操作符
Dec 21 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
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
人力资源经理自我评价
2014/01/04 职场文书
建议书怎么写
2014/03/12 职场文书
课外访万家心得体会
2014/09/03 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
停水通知
2015/04/16 职场文书
毕业论文致谢信
2015/05/14 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers