我们正在构建一个带有Web(角度)门户的iOS / Android应用程序(用于管理目的).后端API将使用Java构建,考虑到Web门户可以拥有我正在考虑使用Spring安全性的不同类型的用户.
我正在考虑使用我的后端服务来使用AWS Cognito对用户进行身份验证.我不想将iOS / Andorid / Web直接与AWS Cognito集成,因为将来我们可能需要切换到其他提供商.
我不确定这是否可能,但是正在考虑这样的事情:
1.注册API:iOS / Android / Web(带角色)通过电子邮件和密码调用我的后端服务.后端服务使用AWS Cognito注册用户. AWS Cognito将返回该用户的标识符以及我将在本地数据库中使用的相同标识符,以创建链接b / w用户以及角色和其他表.后端服务将向客户端(iOS / Android和Web)返回json响应,指出已创建用户.
>登录API:iOS / Android / Web(带角色)通过电子邮件和密码调用我的后端服务.后端服务将电子邮件和密码传递给AWS Cognito.如果用户可用,AWS Coginto将返回通过后端服务传递给客户端(iOS / Andorid / Web)的令牌(具有过期时间),如果它不可用,则会抛出异常.
>获取用户信息API:用户登录后,iOS / Android / Web(带角色)使用令牌(从Login API获取)调用我的后端服务.后端服务使用AWS Cognito验证令牌.如果令牌有效,AWS Cognito将返回用户信息,如电子邮件和标识符,以标识本地数据库中的用户.
>任何其他API:所有其他后端工作为获取用户信息,即客户端(iOS / Andorid / Web)使用令牌调用后端服务,并且支持的服务使用相同的令牌来使用AWS Cognito对用户进行身份验证.
>注销API.调用此API后,令牌应失效.
我已经阅读了很多关于AWS Cognito的文档,但是