token 和 服务器端auth0-JWT包的使用
移动客户端和服务器端在用户登录上经常使用的是一个叫做token的认证方法
token是什么?
token顾名思义, 令牌, 意思就是说,第一次用户登录验证之后,服务器返回一个token令牌,之后客户端与服务器的每一次交互不需要再使用用户名和密码了,直接用token,就能进行验证。
为什么要用token?
如果不用token,每次交互,用户名和密码这样的重要信息都要明目张胆的在数据流中传输,非常的不安全,被有意图的人截获, 如果该用户还习惯不同的账户用一个密码,其收到的损失就更大了。如果使用token的话,就算被截获,token是具有一定的时效性的,过了有效期,这个token就没有用了, 所以必须要实时的截获,这样的难度极大而且繁琐。所以token的使用能增加对用户信息的保护。
token是怎么生成的?
Header{ "alg" : "HS256", "typ" : "JWT"
。
。
。 }
Payload{
"loggedInAs" : "admin",
"iat" : 1422779638
。
。
。
}
signature:
HMAC-SHA256(
encodeBase64Url(header) + '.' + encodeBase64Url(payload) + '.' + secret )
token由这三部分的编码组成,中间用句号隔开
auth0-JWT包的使用详见:
https://github.com/auth0/java-jwt