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


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 选项卡效果(JS与HTML的分离)
Apr 01 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
基于javascript实现简单计算器功能
Jan 03 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
May 12 Javascript
拥Bootstrap入怀——导航栏篇
May 30 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
React-Native中props具体使用详解
Sep 04 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
Sep 04 Javascript
layui表格设计以及数据初始化详解
Oct 26 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 09 Javascript
Node.JS如何实现JWT原理
Sep 18 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 数组教程 定义数组
2009/10/23 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
python使用arp欺骗伪造网关的方法
2015/04/24 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
Python实现Linux监控的方法
2019/05/16 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
python读取xml文件方法解析
2020/08/04 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
校班主任推荐信范文
2013/12/03 职场文书
教育局长自荐信范文
2013/12/22 职场文书
会计电算化专业毕业生推荐信
2013/12/24 职场文书
创业计划书如何吸引他人眼球
2014/01/10 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
小学班主任教育随笔
2015/08/15 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
灵能百分百第三季什么时候来?
2022/03/15 日漫
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server