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


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 获取select下拉列表值的代码
Sep 07 Javascript
基于jquery的滚动鼠标放大缩小图片效果
Oct 27 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
Jun 05 Javascript
一个JavaScript去除字符串末尾的空白实例代码
Sep 22 Javascript
angularjs中ng-attr的用法详解
Dec 31 Javascript
Javascript中this关键字指向问题的测试与详解
Aug 11 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
Mar 07 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 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加密解密的代码
2007/07/16 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
php实现session共享的实例方法
2019/09/19 PHP
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
微信小程序实现留言板(Storage)
2018/11/02 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python网站验证码识别
2016/01/25 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
python实现扫描ip地址的小程序
2019/04/16 Python
Python线程threading模块用法详解
2020/02/26 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
培训讲师邀请函
2014/01/10 职场文书
科级干部考察材料
2014/02/15 职场文书
中青班党性分析材料
2014/02/16 职场文书
公司晚会主持词
2014/03/22 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
四年级数学教学反思
2016/02/16 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers