我正在查看java sdk https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html
并且所需的Auth流的有效值为
Valid Values: USER_SRP_AUTH | REFRESH_TOKEN_AUTH | REFRESH_TOKEN | CUSTOM_AUTH | ADMIN_NO_SRP_AUTH
初次登录时(假设用户已注册并使用用户名和密码登录)。
我想我会想用REFRESH_TOKEN来刷新令牌,但初始令牌来自哪里?示例的initiateAuth调用会是什么样的?
答案 0 :(得分:0)
示例InitiateAuth调用(在AWS CLI中)如下所示:
aws cognito-idp initiate-auth --client-id 1jtj0a0peedlgfdhml3dr5t8j --auth-flow USER_SRP_AUTH --auth-parameters USERNAME=myuser,SRP_A=''
此调用需要一个需要计算的SRP_A参数。在此调用之后,您会在响应中收到CHALLENGE,并且需要进行RespondToAuthChallenge API调用。同样,这需要一个计算值并生成它非常麻烦。您需要使用一些第三方库(python或nodejs)来计算SRP_A和质询响应参数。这就是为什么始终建议使用AWS Mobile SDK(Javascript,Android,iOS)进行InitiateAuth调用。这些SDK抽象出这些低级API调用&计算。你只需要设置一些参数&叫一个功能。
话虽如此,如果您仍想进行InitiateAuth API调用(直接HTTP调用或AWS CLI调用),请查看this stackoverflow帖子。您将了解SRP计算。另外,请检查这个名为Warrant的python库,尤其是this页面。
此外,您引用的文档是REST API参考,而不是Java SDK。