关于Cookie和Session以及Token的说明

现在做web的话就绕不开安全认证这一步,那就先介绍下目前常见的认证方式然后再说关于cookie、session、token的东西。常用的认证方式简单概述如下:

  • cookie-session认证方式

出现较早的认证方式,主要形式是浏览器客户端将用户名密码发送给服务器,服务器验证后创建session并发放用于识别用户的sessionID(与用户状态绑定后记录在服务器端),这个sessionID以及一些相关的其他信息就是cookie,cookie随着响应(Set-Cookie)返回给客户端由客户端存储于浏览器,之后客户端的请求都会带上这个cookie,服务端通过cookie来获取Session信息从而进行认证校验。

  • Oauth认证方式

Oauth是一种授权机制,主要为第三方应用颁发授权令牌(token),目前有Oauth2.0和Oauth1.0版本,其中Oauth2.0版本的标准是RFC6749,Oauth1.0版本的标准是RFC5849。Oauth2.0的具体介绍可以参考阮一峰|Oauth2.0

  • JWT认证方式

JWT的标准是RFC7519。大概原理是客户端经过服务器认证后服务器给客户端返回一个json对象(包含用户信息且加密处理的数据),之后客户端与服务器通信都会带上这个json对象,服务器只通过这个对象来认证用户,也就是说服务器端是无状态的不会保存状态数据了(比如session)。具体可参考阮一峰|JSON Web Token 入门教程

Aws使用EMR对Dynamodb进行备份还原

最近需要对DynamoDB的数据进行迁移,由于现阶段将Dynamo的容量模式由AutoScaling修改成了按需,当使用之前的HIVE脚本时出现了Read throughput should not be less than 1的报错,报错跟DynamoDB的容量有关,继而准备用Ansible在执行脚本前将Dynamo的容量和模式进行调整,又发现了Ansible的Dynamo模块现阶段还没有支持On-Demand billing这个功能,接着又准备使用awscli命令行进行调整,经调研这个应该是可以对Dynamo进行调整的,文章后面有一些资料可以参考,现在由于AWS官方给出了回复,所以就不用搞这个了,直接升级版本就好了,更省事。关于版本问题可以看下面说的版本问题说明