0

我试图在用户服务器端签署asp.net的Core 2登录用户/用户进行身份验证与AWS Cognito

我已经注册了用户,并验证链接确认了,但现在我很努力签署该用户进入我的应用程序。遗憾的是,c#的文档非常糟糕!

用户池配置:

应用程序客户端:启用登录基于服务器的身份验证(ADMIN_NO_SRP_AUTH)API - 检查

下面的代码:

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,但我无法确定令牌需要设置/给予的位置。

它是下

AWS > User Pools > App Intergration > App Client Settings的东西与我的AmazonCognitoIdentityProviderClient设置或者是App客户端的设置?

回答

0

AdminInitiateAuth API意味着从可以访问开发人员IAM凭证的后端调用。既然你试图用AnonymousAWSCredentials来调用这个,你会得到Missing Authentication Token错误。

Cognito用户池尚未对C#提供本机支持。您应该使用hosted auth pages而不是本机API调用将Cognito用户池集成到C#应用程序中。

相关问题