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


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 相关文章推荐
jquery使用append(content)方法注意事项分享
Jan 06 Javascript
javascript从image转换为base64位编码的String
Jul 29 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
javascript常用正则表达式汇总
Jul 31 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
Mar 02 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 Javascript
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
vue组件中的样式属性scoped实例详解
Oct 30 Javascript
微信小程序显示倒计时功能示例【测试可用】
Dec 03 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
May 01 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
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&MYSQL分页原理及实现
2007/01/02 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
python实现中文转换url编码的方法
2016/06/14 Python
Python打包可执行文件的方法详解
2016/09/19 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
python和c语言哪个更适合初学者
2020/06/22 Python
python跨文件使用全局变量的实现
2020/11/17 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
internal修饰符起什么作用
2013/12/16 面试题
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
法学院方阵解说词
2014/01/29 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
聘用意向书范本
2014/04/01 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
个人承诺书怎么写
2014/05/24 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
方法汇总:Python 安装第三方库常用
2022/04/26 Python