雅各布
我正在尝试使用微服务架构开发我的 Web 应用程序。后端我将 Spring、Spring Cloud 和 Spring Boot 用于微服务。我的前端应用程序是一个 Angular 2 应用程序。我的前端应用程序将根据从 Angular 2 应用程序调用的后端其余端点工作。
- 我正在尝试为此 Web 应用程序创建登录名。我计划使用 API 密钥对后端服务进行身份验证。我的登录检查功能也是一个微服务。所以在这里当我调用我的后端服务时,我如何实现这个 API 密钥功能?是否需要不断设置为唯一变量?
这里API密钥不能动态管理,因为登录功能本身是一个微服务,所以我需要使用API密钥来调用已经部署在云中的登录检查服务?
我如何理解这个场景?
吉斌TJ
在这种情况下,您不能真正将 API 密钥用作 Web 应用程序。API 密钥将在 Web 应用程序中公开可见。实现身份验证的正确方法相当复杂,涉及
整个过程的高级概述可以总结如下:
- 用户尝试使用其凭据登录。这将发送到服务器进行身份验证。
- 凭据根据数据库记录进行验证。如果验证通过,则将 JWT 令牌发送回客户端。
- 客户端应将此 JWT 令牌存储在内存或本地存储中的某处,具体取决于用例。有效的 JWT 表示用户已通过身份验证。
- 对于每个后续请求,此 JWT 应附加到请求标头。服务器将查找此 JWT 令牌进行身份验证。
- 对客户端路由的访问受到使用路由保护的认证用户的保护。
- 同样,这个 JWT 令牌有一个过期时间,必须不断检查是否过期。
- 如果经过身份验证的用户的 JWT 令牌即将到期,则服务器应返回刷新令牌,客户端应使用此刷新令牌请求新的经过身份验证的 JWT 令牌。
请参考这篇文章开始。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句