access_token存在意义:

   1、身份验证(一个channel_id一般有0个或1个有效的access_token)

  2、限制用户访问服务器数据的有效期

  3、限制用户访问权限

  access_token执行流程:

  

  总结access_token几个要点:

  1、token是在使用方请求服务器后,服务器再生成token并进行返回

  2、请求放将返回的token记录下来,请求数据后,头请求中将附带token信息,服务器进行接收token是否正确并且在有效时间内

  

  问:为什么我们在写接口的时候,还要用access_token进行身份验证?

    因为用appid+app密钥就可以进行身份校验的(appid+app密钥:类似我们QQ登录的用户名+密码)

  答: 

    1. 额外安全性(保密性):access_token 即使泄露了,攻击者也不会知道帐号拥有者的密码。
    2. 额外安全性(权限范围性):access_token可以限制於某几个接口的使用权限,而不是帐号的全部权限,如果泄露了,也不会让攻击者得到夺取整个帐号的权限。
    3. 额外安全性(时间性):access_token只会在10-20分钟内有效,所以即使泄露了,攻击者操作的时间空间也只有10-20分钟。
    4. 额外安全性(客户端安全管理):在客户端需要用户手动输入密码的时候, access_token 能让客户端不用把密码保存下来(几乎没有完全安全的保存方法),而只需要保存access_token ,减低泄密风险。
    5. 性能:服务器重视数据安全时,或者在验证过程中会对密码运行很多次的Hashing,才对数据库进行比对(这是为了防止数据库泄露后,密码被暴力破解的防御环节之一),因此每一次验证密码也对服务器的性能消耗比较大。access_token可以让服务器在它失效时才验证一次,大幅减少性能开销。

    6. 更容易管理:服务端可以随时终止一个access_token、生成新的access_token,而不影响app密钥。
    7. 更灵活:可以容许一个帐号有不同的access_token、在不同环境操作(例如:测试环境、生产环境 同一帐号有不同的access_token)
    8. 抽象化:access_token代表着"已经成功验证,并获得某些权限",所以业务操作可以只判断access_token,而不用理会验证方式是怎样(例如:用QQ登入,还是用指纹)

  以上

  END

API:access_token的更多相关文章

  1. 玩玩微信公众号Java版之三:access_token及存储access_token

    微信官方参考文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183   基本说明: access_token是 ...

  2. TFS API:三、TFS WorkItem添加和修改、保存

    TFS API:三.TFS  WorkItem添加和修改.保存 WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1 ...

  3. TFS API:二、TFS 代码查询工作项

    TFS API:二.TFS  代码查询工作项 首先我们需要认识TFS的两大获取服务对象的类. 他们分别为TfsConfigurationServer和TfsTeamProjectCollection, ...

  4. TFS API:一、TFS 体系结构和概念

    TFS API:一.TFS  体系结构和概念 TFS是Team Fundation Server的简称,是微软VSTS的一部分,它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台, ...

  5. 微信客户端自带的Js Api:WeixinJSBridge

    <!DOCTYPE html> <html> <head> <title>微信WeixinJSBridge API</title> < ...

  6. 利用未文档化API:RtlAdjustPrivilege 提权实现自动关机

    这里主要是利用NTDLL.dll中未文档化的API: RtlAdjustPrivilege 来实现提权.自动关机的功能. RtlAdjustPrivilege定义如下: NTSTATUS RtlAdj ...

  7. 利用未文档化API:RtlGetNtVersionNumbers 获取系统版本号

    问题一:Windows SDK 8.1版本中的VersionHelper.h文件当中没有IsWindows10ORGreater,所以当你用IsWindows8Point1ORGreater判断出版本 ...

  8. 调皮的QQ音乐API:修复无法获取歌单

    上一篇完整版:http://www.cnblogs.com/TwilightLemon/p/7076938.html QQ音乐的API真是太调皮了,获取歌单的API又更换了好多次,喵喵喵 旧版API( ...

  9. 没有任何秘密的 API:Vulkan* 简介

    Vulkan 被视作是 OpenGL 的后续产品. 它是一种多平台 API,可支持开发人员准备游戏.CAD 工具.性能基准测试等高性能图形应用. 它可在不同的操作系统(比如 Windows*.Linu ...

随机推荐

  1. html 一些坑。。。

    margin-left 和 margin-right 才能够使用 auto top 和 bottom 不可以 在网页设计中...通常给img 父容器 一个 宽度...同时 ,指定 img width= ...

  2. 使用npm发布自己的包

    记录一下大概步骤: 去npm官网注册一个账号 在文件夹下执行npm init 创建 package.json 执行 npm login,并根据提示输入你的npm账号,密码,和邮箱 执行 npm pub ...

  3. JavaScript权威指南--闭包讲解摘记

    不积跬步无以至千里,不积小流无以成江河. 关于闭包的解释,在<JavaScript权威指南>中讲的很透彻了.今天看了书中的一个段讲解,更加深了对闭包的理解,特此记下,以备查阅. 在同一个作 ...

  4. codeforces 985C Liebig's Barrels(贪心)

    题目 题意: 有n * k块木板,每个木桶由k木板组成,每个木桶的容量定义为它最短的那块木板的长度. 任意两个木桶的容量v1,v2,满足|v1-v2| <= d. 问n个木桶容量的最大的和为多少 ...

  5. day_09 函数及参数

    1.定义:把功能封装起来,方便下次直接调用 2.语法:def 关键词开头,空格之后接函数名称和圆括号(). def 函数名(形参) 函数体 3.参数:圆括号用来接收参数.若传入多个参数,参数之间用逗号 ...

  6. python 编程基础-字典类型和方法(课后习题)

    #创建一个字典 dic = {'k1':'v1','k2':'v2','k3':'v3'} #1.请循环遍历出所有的KEY for k in dic: print(k) #2请循环遍历出所有的valu ...

  7. jquery 初步学习

    首先 jQuery是一个轻量级的 JS框架,核心文件才几十KB 1. jquery 对象 var $variable=jquery对象 var variable = DOM对象 $variable[0 ...

  8. import与export

    expoer default 输出的是一个对象 export 输出的是对象的一个元素

  9. CAD安装失败怎样卸载CAD 2016?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  10. jemalloc报 Unsupported system page size错误