首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让亚马逊认知与angular2和类型记录一起工作

让亚马逊认知与angular2和类型记录一起工作
EN

Stack Overflow用户
提问于 2017-09-04 18:45:12
回答 1查看 3.2K关注 0票数 3

我想让科尼托忘记密码去工作

正在使用: Angular2+Typescript+Ionic

我对这个过程相当陌生,但我遵循了从这里找到的快速启动( Quickstart ),https://www.libhive.com/providers/npm/packages/amazon-cognito-identity-js

无论我看起来做什么,我总是不能读取属性‘CognitoUser’的未定义,或类似的错误。

代码语言:javascript
复制
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");
  }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-19 11:52:15

我已经通过导入我所需要的所有东西来解决这个问题。

代码语言:javascript
复制
    import {
    CognitoIdentityServiceProvider,
    AuthenticationDetails,
    CognitoUserPool,
    CognitoUser,
    CognitoUserAttribute,
    ICognitoUserAttributeData,
    ISignUpResult,
    CognitoUserSession,
  } from 'amazon-cognito-identity-js';

  import * as AWS from 'aws-sdk';

然后在我的功能中使用它

代码语言:javascript
复制
          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
            });

我对它进行了测试,使它没有任何问题地运行。如果这对你有用,请告诉我!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46042634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档