0

我试着让Cognito的忘记密码使用工作获得亚马逊Cognito与angular2和打字稿工作

林: Angular2 +打字稿+离子

我是相当新的这个过程,但我也跟着快速入门我从这里https://www.libhive.com/providers/npm/packages/amazon-cognito-identity-js

发现无论我似乎做,我总是无法读取的未定义的属性“CognitoUser”,或错误类似于

import { Component } from '@angular/core'; 
 
import { NavController, LoadingController } from 'ionic-angular'; 
 
import { TabsPage } from '../tabs/tabs'; 
 
import { SignupPage } from '../signup/signup'; 
 
import { ConfirmPage } from '../confirm/confirm'; 
 
import { LoginPage } from '../login/login'; 
 
import {Camera, CameraOptions} from '@ionic-native/camera'; 
 
import { Cognito } from '../../providers/aws.cognito'; 
 
import { User } from '../../providers/providers'; 
 
import { MediaCapture, MediaFile, CaptureError, CaptureImageOptions } from '@ionic-native/Media-Capture'; 
 
import { 
 
    AuthenticationDetails, 
 
    CognitoIdentityServiceProvider, 
 
    CognitoUser, 
 
    CognitoUserAttribute, 
 
    CognitoUserPool 
 
} from "aws-cognito-identity"; 
 
declare var AWS: any; 
 
declare const aws_cognito_identity_pool_id; 
 
declare const aws_cognito_region; 
 

 
var AmazonCognitoIdentity = require('amazon-cognito-identity-js'); 
 
var CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool; 
 
var CognitoUser = AmazonCognitoIdentity.CognitoUser; 
 

 

 
recovery() 
 
    { 
 
    AWS.config.region = aws_cognito_region; 
 
    var CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool; 
 
    var userData = { 
 
     Username : ‘testuser’, 
 
     Pool : aws_cognito_identity_pool_id 
 
    }; 
 
    
 
    var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); 
 
    
 

 
     // call forgotPassword on cognitoUser 
 
     cognitoUser.forgotPassword({ 
 
      onSuccess: function(result) { 
 
       console.log('call result: ' + result); 
 
      }, 
 
      onFailure: function(err) { 
 
       alert(err); 
 
      }, 
 
      inputVerificationCode() { // this is optional, and likely won't be implemented as in AWS's example (i.e, prompt to get info) 
 
       var verificationCode = prompt('Please input verification code ', ''); 
 
       var newPassword = prompt('Enter new password ', ''); 
 
       cognitoUser.confirmPassword(verificationCode, newPassword, this); 
 
      } 
 
     }); 
 
    
 
    alert("It should have worked"); 
 
    }

回答

1

我已经通过导入所有下面的方式整理出来什么,我需要

import { 
    CognitoIdentityServiceProvider, 
    AuthenticationDetails, 
    CognitoUserPool, 
    CognitoUser, 
    CognitoUserAttribute, 
    ICognitoUserAttributeData, 
    ISignUpResult, 
    CognitoUserSession, 
    } from 'amazon-cognito-identity-js'; 

    import * as AWS from 'aws-sdk'; 

,然后用它在我的功能

  const userPool = this._getUserPoolData(); 

      const user = new CognitoUser({ Username: usrLoginDetails.username, Pool: userPool }); 
      const authenticationData = { Username: usrLoginDetails.username, Password: usrLoginDetails.password }; 
      const authenticationDetails = new AuthenticationDetails(authenticationData); 



      user.authenticateUser(authenticationDetails, { 
       onSuccess: result => { 
       //success here 
       }, 
       onFailure: error => {}, //error here, 
       newPasswordRequired:() => {}, // no-op 
       mfaRequired:() => {}, // no-op 
       customChallenge:() => {} // no-op 
      }); 

我测试,并得到它运行没有任何问题。让我知道这是否适合你!

+0

谢谢!得到它的工作 –