c# - 使用 AWS Cognito 登录用户/验证用户

标签 c# amazon-web-services asp.net-core amazon-cognito

我正在尝试在 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 设置或者

下的 App 客户端设置

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/

相关文章:

c# - 为什么 Wiki 中的射弹轨迹公式会给出奇怪的结果?

node.js - AWS S3 putObject 回调未触发

amazon-web-services - AWS DynamoDB BatchWriteItem-写入容量单位

c# - 如何在局部 View MVC.Core 中使用 @section 脚本

c# - 无法访问 ASP.NET Core 后台服务中已处置的对象

c# - 使用 SqlBuilder 的 FROM 子句中的 SQL 注入(inject)

c# - 坚持 linq 查询

c# - Mono Migration Analyzer 的替代品

bash - AWS Data Pipeline - 如何从 ShellCommandActivity 设置全局管道变量

asp.net-core - asp.net核心检查中间件中的路由属性