身份验证通常用来验证某人或某事是否如它所说的那样是谁或者是什么。
身份验证技术通过测试查看用户的凭据是否与经过身份验证的用户数据库或服务器中的凭据相匹配,从而提供设备访问控制。
基于token的身份验证的工作原理是,确保每个到服务器的请求后面都有一个签名的令牌,服务器验证该令牌的有效性,然后才响应请求。
token是一段本身没有什么意义或用途的数据,但它根据正确的令牌化方法,在保护应用程序方面发挥了关键作用。
为什么用token而不是传统方式?
- 令牌是无状态的:令牌是自包含的,包括所需的所有身份验证信息。对于可伸缩性,这是完美的,因为它使您的服务器不必存储会话状态
- 令牌可以从任何地方生成:令牌的生成与令牌身份验证解耦,允许您在单独的服务器上管理令牌签名,甚至通过另一家公司(如Auth0)
- 细粒度访问控制:您可以轻松地在令牌有效负载(payload)中定义用户角色和权限,以及用户可以访问的服务
有很多相关技术,但主要是两种:
- JWT: Json Web Tokens
- Opaque Tokens
让我们学习一下这些令牌是什么,以及在不同情况下做出不同的技术选择。
1.JWT(Json Web Tokens)
实际上,JWT令牌是一个完整