我正在尝试在 asp.net Core 2 上登录用户服务器端
我已经注册了一个用户并通过验证链接进行了确认,但现在我正在努力将该用户登录到我的应用程序中。很遗憾 C# 的文档太差了!
用户池配置:
App Client:为基于服务器的身份验证启用登录 API (ADMIN_NO_SRP_AUTH) - 选中
代码如下:
public async Task<bool> SignInUserAsync(CognitoUser user)
{
var provider = new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(),
RegionEndpoint.GetBySystemName("eu-west-2"));
try
{
var authReq = new AdminInitiateAuthRequest
{
AuthFlow = AuthFlowType.ADMIN_NO_SRP_AUTH,
UserPoolId = _poolId,
ClientId = _clientId
};
authReq.AuthParameters.Add("USERNAME", user.Email);
authReq.AuthParameters.Add("PASSWORD", user.Password);
AdminInitiateAuthResponse authResp = await provider.AdminInitiateAuthAsync(authReq);
return true;
}
catch
{
return false;
}
}
返回的错误是 Missing Authentication Token
但我无法弄清楚需要在哪里设置 token /已将 token 提供给我。
是不是我的 AmazonCognitoIdentityProviderClient
设置或者
AWS > 用户池 > 应用集成 > 应用客户端设置
?
最佳答案
AdminInitiateAuth API 旨在从有权访问开发人员 IAM 凭据的后端调用。由于您正尝试使用 AnonymousAWSCredentials
调用它,因此您收到了 Missing Authentication Token
错误。
Cognito 用户池尚不原生支持 C#。您应该使用 hosted auth pages 将 Cognito 用户池集成到您的 C# 应用程序中而不是 native API 调用。
关于c# - 使用 AWS Cognito 登录用户/验证用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46745621/