努力让这个完全正常工作 - 这是我的应用程序工作流程:
React 前端 - 用户直接使用 Cognito 进行身份验证(使用 AWS Amplify) - 我的工作正常。前端需要处理这个问题,因为它对其他 AWS 服务进行单独的直接调用。
DRF 后端 - React 然后使用 Amplify.API 对 DRF 端点进行 API 调用,其中包括请求标头中的 x-amz-security-token(这似乎是 Amplify 调用 cognito-idp 服务返回的会话令牌)。所以现在后端有会话令牌(但没有访问令牌或刷新令牌)
然后,后端只需验证前端用户(我假设其经过身份验证的身份由会话令牌表示)是根据 Cognito 的有效且当前经过身份验证的用户。所以后端需要单独调用 Cognito 来验证这一点。
这是我失败的地方 - 我查看了 django-warrant,但我无法从文档中辨别这是否适合我的用例(甚至如何真正使用它 - 建议的默认设置会导致各种boto3 错误,缺少凭据等)。我还查看了保证,并直接查看了 boto3 和 botocore,但我不清楚在哪里使这一切发生。我是否错过了在这些库中看到某种 is_user_valid 和 is_session_token_valid 方法?
如果有人知道如何使用 django-warrant 直接执行此操作,它会有所帮助,如果不是关于最佳前进方式的一点建议,也将不胜感激(我是否编写自己的身份验证支持或中间件来拦截请求,以某种方式进行身份验证 w / boto3 或 botocore,还是什么?)
非常感谢