一种全新的分布式用户认证架构设计
前言 分布式用户认证, 有个简单的称谓就是单点登陆, 即一处登陆,到处通行. 说详细一点就是,集中的用户统一身份认证和分布的式的用户验证和资源访问控制. 对于小公司而言,提供的服务少,常常用户认证和服务混合在一起,体会不到分布式用户认证好处. 随着公司规模的扩大,提供的服务越来越多,把用户认证和服务提供拆分开来,实现分布式用户认证,可降低系统的相互依赖性,提高系统的可扩展性. 常见的方案 基于普通token的方案. 这个方案通常在用户登录后,把用户信息储存与中心服务器, 同时给客户端一个普通token, 以后访问服务时均以此token识别用户身份. 这个token只是一个hash值,一个唯一的ID,自身不含用户信息,要辨别token的真伪,需要的中心服务器查询,这是一个集中用户认证的方案,简单易用,当可扩展性不高. 本文介绍一个新的方案 基于JSON Web Token(JWT)的方案. JWT,简单的说就是把用户的公开信息和信息的签名合成一个字符串,保证信息无法伪造.详细可参考互联网上的资料。 JWT 和基于hash值的普通token的主要不同点: JWT 自身包含用户的公开信息。 JWT 不用到中心服务器查询就可验证真伪。 这些特点,使得JWT 很像现实生活中的身份证,签证等证件。 这个方案,通过用户登陆后,中心服务器给客户端一个JWT,这个JWT包含用户的公开信息