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


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 相关文章推荐
Prototype RegExp对象 学习
Jul 19 Javascript
JQuery最佳实践之精妙的自定义事件
Aug 11 Javascript
javascript ready和load事件的区别示例介绍
Aug 30 Javascript
如何让DIV可编辑、可拖动示例代码
Sep 18 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
JS深度拷贝Object Array实例分析
Mar 31 Javascript
jQuery模拟select实现下拉菜单功能
Jun 20 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
微信小程序组件之srcoll-view的详解
Oct 19 Javascript
Vue.js自定义指令学习使用详解
Oct 19 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
Jul 31 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的安全策略
2006/10/09 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
做网页的一些技巧
2007/02/01 Javascript
JQuery实现自定义对话框的代码
2008/06/15 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
javascript回调函数详解
2018/02/06 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
Python兔子毒药问题实例分析
2015/03/05 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python中str.format()详解
2017/03/12 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
python实现简单飞行棋
2020/02/06 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
学校评语大全
2014/05/06 职场文书
护士先进个人总结
2015/02/13 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
Python基本数据类型之字符串str
2021/07/21 Python
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL