`
郭丶小川
  • 浏览: 34012 次
社区版块
存档分类
最新评论

获得session_key和openId(加解密、签名系列)

阅读更多
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)


总结:从1,2,3步骤可知,只要获得appid,secret,js_code就可得到session_key和openId

4:appid和secret的获得
appid为小程序ID
secret为小程序密钥(AppSecret)
获得方法:小程序后台登录网址:https://mp.weixin.qq.com/
打开小程序后台网址、注册、登录后,按如下图所示就可找到你的AppID和AppSecret。

注意:目前小程序个人不能注册,开放注册范围:企业、政府、媒体、其他组织;
当然用这个办法,个人也能注册了。
传送门: https://my.oschina.net/imhoodoo/blog/780901
5:js_code如何获得调用wx.login()接口就可获取登录凭证(js_code)

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
原文链接:http://bbs.jointforce.com/topic/24476
分享到:
评论

相关推荐

    微信小程序获得session_key和openId(加解密、签名系列)

    1:session_key和openId是什么?session_key   官方说明为: session_key是微信服务器生成的针对用户数据进行加密签名的密钥 session_key的用途 (1)对wx.getUserInfo()接口得到“用户信息中的密文”进行解密。 ...

    微信小程序登录流程

    1:session_key和openId是什么?session_key 官方说明为: session_key是微信服务器生成的针对用户数据进行加密签名的密钥 session_key的用途 (1)对wx.getUserInfo()接口得到“用户信息中的密文”进行解密。 (2)...

    微信小程序获取用户openid的实现

    用户数据的加解密通讯需要依赖会话密钥完成。 2、code 换取 session_key 这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。其中 session_key 是对用户数据进行加密签名的密钥。为了...

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

    1:session_key和openId是什么?session_key 官方说明为: session_key是微信服务器生成的针对用户数据进行加密签名的密钥 session_key的用途 (1)对wx.getUserInfo()接口得到“用户信息中的密文”进行解密。 ...

    .NET微信小程序用户数据的签名验证和解密代码

    例如,可以创建一个`WeChatAppDecrypt`类,其中包含初始化方法、获取`session_key`与`openid`的方法、解密方法和签名验证方法。以下是一些关键代码实现的概念: - 使用`HttpClient`或`WebClient`来发送HTTP请求,...

    thinkphp后台获取微信小程序用户信息

    用户数据的加解密通讯需要依赖会话密钥完成。 code 换取 session_key ​这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。 session_key 是对用户数据进行加密签名的密钥。为了自身...

    java获取微信小程序openid

    3. **换取Session Key和OpenID** 使用小程序前端获取的code,结合AppID和AppSecret,通过微信API `https://api.weixin.qq.com/sns/jscode2session` 来换取Session Key和OpenID。返回的数据结构通常包含`openid`、`...

    PHP后台实现微信小程序登录

    以上代码展示了后端处理微信小程序登录请求的核心逻辑,包括通过`code`获取`session_key`和`openid`、校验签名以及使用微信官方提供的SDK解密用户数据。在实际的开发中,还需要考虑异常处理和安全验证等方面的问题,...

    token 的来龙去脉

    在前后端分离的场景中,确保API调用时数据安全性的方案包括使用HTTPS进行通信,请求签名防止参数篡改,身份确认机制验证请求合法性,使用SSL Pinning防止抓包,以及对所有请求和响应进行加解密操作。基于Token的鉴权...

    3-7 获取临时授权和微信基本信息 - EMOS小程序1

    开发者需要在开发者服务器后台,使用 code 换取 openid 和 session_key 等信息。 示例代码: ``` uni.login({ provider: 'weixin', success: function (resp) { console.log(resp.code); } }); ``` 二、获取...

    微信小程序后端(java)开发流程的详细步骤

    - 后端使用`session_key`和`encryptedData`、`iv`进行解密。通常会使用如`Sha1Utils`等工具类来实现解密过程。 - 解密成功后,得到的JSON对象包含了用户的手机号等敏感信息,可以根据业务需求进行处理,如绑定微信...

    UASPT

    4. **数字签名与证书**:为了确保代码的完整性和来源可信,UASPT可能使用数字签名和证书,这些由Java Key Store (JKS) 和TrustStore管理。 5. **Java Servlet与过滤器**:如果UASPT是一个Web应用,那么它可能利用...

    JAVA上百实例源码以及开源项目源代码

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

Global site tag (gtag.js) - Google Analytics