Skip to content
This repository has been archived by the owner on Feb 24, 2018. It is now read-only.

CognitoUser.initiateAuth is not a function. #631

Closed
joe455 opened this issue Dec 21, 2017 · 4 comments
Closed

CognitoUser.initiateAuth is not a function. #631

joe455 opened this issue Dec 21, 2017 · 4 comments

Comments

@joe455
Copy link

joe455 commented Dec 21, 2017

I am trying to implement custom authentication flow and as per the use case 25, I am trying to call initiateAuth method.(Please note that I am using JS SDK version 1.28.0 which is latest).The problem here is initiateAuth method is not available on cognitoUser. You can find it below?

declare module "amazon-cognito-identity-js" {

import * as AWS from "aws-sdk";

export type NodeCallback<E,T> = (err?: E, result?: T) => void;

export interface IAuthenticationDetailsData {
Username: string;
Password: string;
}

export class AuthenticationDetails {
constructor(data: IAuthenticationDetailsData);

public getUsername(): string;
public getPassword(): string;
public getValidationData(): any[];

}

export interface ICognitoStorage {
setItem(key: string, value: string): void;
getItem(key: string): string;
removeItem(key: string): void;
clear(): void;
}

export interface ICognitoUserData {
Username: string;
Pool: CognitoUserPool;
Storage?: ICognitoStorage;
}

export class CognitoUser {
constructor(data: ICognitoUserData);

public setSignInUserSession(signInUserSession: CognitoUserSession): void;
public getSignInUserSession(): CognitoUserSession | null;
public getUsername(): string;

public getAuthenticationFlowType(): string;
public setAuthenticationFlowType(authenticationFlowType: string): string;

public getSession(callback: Function): any;
public refreshSession(refreshToken: CognitoRefreshToken, callback: NodeCallback<any, any>): void;
public authenticateUser(authenticationDetails: AuthenticationDetails,
                        callbacks: {
                            onSuccess: (session: CognitoUserSession, userConfirmationNecessary?: boolean) => void,
                            onFailure: (err: any) => void,
                            newPasswordRequired?: (userAttributes: any, requiredAttributes: any) => void,
                            mfaRequired?: (challengeName: any, challengeParameters: any) => void,
                            customChallenge?: (challengeParameters: any) => void
                        }): void;
public confirmRegistration(code: string, forceAliasCreation: boolean, callback: NodeCallback<any, any>): void;
public sendCustomChallengeAnswer(answerChallenge: any, callback:NodeCallback<any, any>):void;
public resendConfirmationCode(callback: NodeCallback<Error, "SUCCESS">): void;
public changePassword(oldPassword: string, newPassword: string, callback: NodeCallback<Error, "SUCCESS">): void;
public forgotPassword(callbacks: { onSuccess: (data: any) => void, onFailure: (err: Error) => void, inputVerificationCode?: (data: any) => void }): void;
public confirmPassword(verificationCode: string, newPassword: string, callbacks: { onSuccess: () => void, onFailure: (err: Error) => void }): void;
public setDeviceStatusRemembered(callbacks: { onSuccess: (success: string) => void, onFailure: (err: any) => void }): void;
public setDeviceStatusNotRemembered(callbacks: { onSuccess: (success: string) => void, onFailure: (err: any) => void }): void;
public getDevice(callbacks: {onSuccess: (success: string) => void, onFailure: (err: Error) => void}): any;
public sendMFACode(confirmationCode: string, callbacks: { onSuccess: (session: CognitoUserSession) => void, onFailure: (err: any) => void }): void;
public completeNewPasswordChallenge(newPassword: string,
                                    requiredAttributeData: any,
                                    callbacks: {
                                        onSuccess: (session: CognitoUserSession) => void,
                                        onFailure: (err: any) => void,
                                        mfaRequired?: (challengeName: any, challengeParameters: any) => void,
                                        customChallenge?: (challengeParameters: any) => void
                                    }): void;
public signOut(): void;
public globalSignOut(callbacks: { onSuccess: (msg: string) => void, onFailure: (err: Error) => void }): void;
public verifyAttribute(attributeName: string, confirmationCode: string, callbacks: { onSuccess: (success: string) => void, onFailure: (err: Error) => void }): void;
public getUserAttributes(callback: NodeCallback<Error, CognitoUserAttribute[]>): void;
public updateAttributes(attributes: ICognitoUserAttributeData[], callback: NodeCallback<Error,string>): void;
public deleteAttributes(attributeList: string[], callback: NodeCallback<Error, string>): void;
public getAttributeVerificationCode(name: string, callback: { onSuccess: () => void, onFailure: (err: Error) => void, inputVerificationCode: (data: string) => void | null }): void;
public deleteUser(callback: NodeCallback<Error, string>): void;
public enableMFA(callback: NodeCallback<Error, string>): void;
public disableMFA(callback: NodeCallback<Error, string>): void;
public getMFAOptions(callback: NodeCallback<Error, MFAOption[]>): void;

}

export interface MFAOption {
DeliveryMedium: "SMS" |"EMAIL";
AttributeName: string;
}

export interface ICognitoUserAttributeData {
Name: string;
Value: string;
}

export class CognitoUserAttribute {
constructor(data: ICognitoUserAttributeData);

public getValue(): string;
public setValue(value: string): CognitoUserAttribute;
public getName(): string;
public setName(name: string): CognitoUserAttribute;
public toString(): string;
public toJSON(): Object;

}

export interface ISignUpResult {
user: CognitoUser;
userConfirmed: boolean;
userSub: string;
}

export interface ICognitoUserPoolData {
UserPoolId: string;
ClientId: string;
endpoint?: string;
Storage?: ICognitoStorage;
}

export class CognitoUserPool {
constructor(data: ICognitoUserPoolData);

public getUserPoolId(): string;
public getClientId(): string;

public signUp(username: string, password: string, userAttributes: CognitoUserAttribute[], validationData: CognitoUserAttribute[], callback: NodeCallback<Error,ISignUpResult>): void;

public getCurrentUser(): CognitoUser | null;

}

export interface ICognitoUserSessionData {
IdToken: CognitoIdToken;
AccessToken: CognitoAccessToken;
RefreshToken?: CognitoRefreshToken;
}

export class CognitoUserSession {
constructor(data: ICognitoUserSessionData);

public getIdToken(): CognitoIdToken;
public getRefreshToken(): CognitoRefreshToken;
public getAccessToken(): CognitoAccessToken;
public isValid(): boolean;

}

export class CognitoIdentityServiceProvider {
public config: AWS.CognitoIdentityServiceProvider.Types.ClientConfiguration;
}

export class CognitoAccessToken {
constructor({ AccessToken }: { AccessToken: string });

public getJwtToken(): string;
public getExpiration(): number;

}

export class CognitoIdToken {
constructor({ IdToken }: { IdToken: string });

public getJwtToken(): string;
public getExpiration(): number;

}

export class CognitoRefreshToken {
constructor({ RefreshToken }: { RefreshToken: string });

public getToken(): string;

}

export interface ICookieStorageData {
domain: string;
path?: string;
expires?: number;
secure?: boolean;
}
export class CookieStorage implements ICognitoStorage {
constructor(data: ICookieStorageData);
setItem(key: string, value: string): void;
getItem(key: string): string;
removeItem(key: string): void;
clear(): void;
}

}
Am I missing something here? Can somebody please help me.

@itrestian
Copy link
Contributor

Yes, I explained the typescript definition for that is missing as the definitions are community maintained. I will make a note to add the typescript definition for initiateAuth.

@joe455
Copy link
Author

joe455 commented Dec 22, 2017

@itrestian Can you confirm the availability?
Actually it's blocking our project deliverable's .

@itrestian
Copy link
Contributor

As a general rule, we don't comment on timelines or the availability of features but it is pretty much on our roadmap to fix this.

@joe455
Copy link
Author

joe455 commented Dec 22, 2017

It's related to #625

@joe455 joe455 closed this as completed Dec 22, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants