1、access_token是加密的字符串,其目的是为了接口安全考虑,不然随便就能调用微信服务器的接口会有很大风险。 
2、用户在公众号中填写的Token就相当于本项目中的xiaoming,是签名验证中的一个参数,来保证签名的安全 
3、EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥 
4、signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数 
5、timestamp:时间戳 
6、nonce:随机数 
7、echostr:随机字符串 
8、微信signature加密/校验流程: 
(1)将token、timestamp、nonce三个参数进行字典序排序 
(2)将三个参数字符串拼接成一个字符串进行sha1加密 
(3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 
9、OpenID:为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,OpenID是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID,开发者可通过OpenID来获取用户基本信息 
10、UnionID:用来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的 
11、AppID:接口身份证号 
12、AppSecret:密码 
13、access_token:公众号的全局唯一票据(登陆后的凭据,证明你已经登陆,相当于你拿着票去看演唱会,说明你已经买票了,才会让你进) 
14、expires_in:access_token过期时间,因为这里是第三方服务器调用,所以微信服务器必须返回告知给第三方服务器过期时间,从而让第三方服务器更好处理

15、access_token使用注意事项: 
(1)为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器。而其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则会造成access_token覆盖而影响业务 
(2)目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡 
(3)3、access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程

16、access_token两小时过期时间的设计原因(网络解释): access_token的过期也是为安全考虑。 
(1)想象一种情况,我授权了一个应用,它拿到了我的access_token,然后我忘记我授权过了,于是我以后每次发布的内容都被它拿去存起来,或者它利用我的账号偷偷的发消息,我一点都不知道。 这种情况还是很可怕的。 
(2)如果只是做登录,确实不需要access token,因为已经有openid或者uid跟你的用户对应起来了。但是,这是授权行为啊,意味这第三方应用可以拿着access token去取你的数据啊。所以这里就需要时效性来保证安全了。

17、微信access_token两小时过期时间的设计原因(自我理解):微信的token两小时刷新一次是因为第三方服务器接入微信服务器,目的是获取微信服务器中的数据,也就是所谓的第三方登陆,用户通过第三方服务器登陆,第三方服务器再去微信平台获取数据,这样就需要一个授权的过程,也就是说微信服务器同意你某个第三方服务器获取数据才行,为了把控这个授权过程,不会因为授权之后就一直能获取微信服务器数据这种情况的发生,所以才有了两小时刷新一次 
18、微信服务器接口访问次数限制:微信服务器接口访问限制次数是为了防止第三方服务器因为程序错误无限调用微信服务器从而使得微信服务器崩溃,所以才有的访问次数限制 
19、签名验证:验证消息的确来自微信服务器(本项目中为:验证参数的确来自于本项目安卓客户端)

微信access_token设计的原理解析的更多相关文章

  1. dubbo源码解析五 --- 集群容错架构设计与原理分析

    欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 博客园 Dubbo 入门之二 --- 项目结构解析 博客园 Dubbo 源码分析系列之 ...

  2. Spring IOC设计原理解析:本文乃学习整理参考而来

    Spring IOC设计原理解析:本文乃学习整理参考而来 一. 什么是Ioc/DI? 二. Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三. I ...

  3. android黑科技系列——微信抢红包插件原理解析和开发实现

    一.前言 自从几年前微信添加抢红包的功能,微信的电商之旅算是正式开始正式火爆起来.但是作为Android开发者来说,我们在抢红包的同时意识到了很多问题,就是手动去抢红包的速度慢了,当然这些有很多原因导 ...

  4. Android中微信抢红包插件原理解析和开发实现

    一.前言 自从去年中微信添加抢红包的功能,微信的电商之旅算是正式开始正式火爆起来.但是作为Android开发者来说,我们在抢红包的同时意识到了很多问题,就是手动去抢红包的速度慢了,当然这些有很多原因导 ...

  5. Tomcat 架构原理解析到架构设计借鉴

    Tomcat 发展这么多年,已经比较成熟稳定.在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又 ...

  6. APPcrawler基础原理解析及使用

    一.背景 一年前,我们一直在用monkey进行Android 的稳定性测试 ,主要目的就是为了测试app 是否会产生Crash,是否会有ANR,页面错误等问题,在monkey测试过程中,实现了脱离Ca ...

  7. Spring Security 解析(六) —— 基于JWT的单点登陆(SSO)开发及原理解析

    Spring Security 解析(六) -- 基于JWT的单点登陆(SSO)开发及原理解析   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...

  8. 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现

    本文地址 原文地址 分享提纲: 0. 引子 1. 感性认识GeoHash 2. GeoHash算法的步骤 3. GeoHash Base32编码长度与精度 4. GeoHash算法 5. 使用注意点( ...

  9. Android中插件开发篇之----应用换肤原理解析

    一.前言 今天又到周末了,感觉时间过的很快呀.又要写blog了.那么今天就来看看应用的换肤原理解析.在之前的一篇博客中我说道了Android中的插件开发篇的基础:类加载器的相关知识.没看过的同学可以转 ...

随机推荐

  1. C++ 类型、类型转换

    C++ 数据类型 基本内置类型 字面值常量和字面值类型 类类型 隐式的类类型转换 聚合类 字面值常量类 constexpr 构造函数 类的静态成员 使用编程语言进行编程时,需要用到各种变量来存储各种信 ...

  2. 【转】CentOS6开启BBR加速

    1.查看机器内核 BBR 算法需要 Linux 4.9 及以上的内核支持,所以想要使用该方式的需要先升级内核版本. 在 Cent OS 7 上的 Linux 内核是 3.10, 使用 uname -r ...

  3. 学习笔记(4)- DQN

    宋皓宇 张伟男刘挺. (2018). 基于DQN的开放域多轮对话策略学习. 中文信息学报, 32(7), 99. http://jcip.cipsc.org.cn/CN/abstract/articl ...

  4. Linux命令:yum命令

    YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具 一.yum命令用法 yum repolist ...

  5. Educational Codeforces Round 72 (Rated for Div. 2)D(DFS,思维)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int n,m,k=1;int c[5007] ...

  6. 移动端300毫秒事件响应延迟解决方法[fastclick]

    vue-cli[2.x]中: 安装 npm install fastclick --save 使用: 在main.js中 :先 import fastClick from 'fastclick' 然后 ...

  7. windows XAMPP下安装mongoDB

    1.下载 下载地址:http://www.mongodb.org/downloads 2.安装 进入cmd第一步:D:\xampp\mongodb\bin\mongod.exe --dbpath=D: ...

  8. TortoiseGit+msysgit保存用户名和密码

    本文以windows系统为例 保存用户名和密码 在C盘的c:\Users**qing** (或可能是C:\Users\Administrator) (替换自己的用户名)找到.gitconfig, 如果 ...

  9. linux查漏补缺-Linux文件目录结构一览表

    FHS 标准 FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途. ...

  10. smoj2806建筑物

    题面 有R红色立方体,G绿色立方体和B蓝色立方体.每个立方体的边长是1.现在有一个N × N的木板,该板被划分成1×1个单元.现在要把所有的R+G+B个立方体都放在木板上.立方体必须放置在单元格内,单 ...