属性 'idToken' 在类型 'CognitoUserSession' 上不存在
Property 'idToken' does not exist on type 'CognitoUserSession'
我正在尝试在 userData
内从 idToken
解构 payload
。
userData
属于 CognitoUserSession
.
类型
import { CognitoUser } from "@aws-amplify/auth";
import { CognitoUserSession, CognitoIdToken } from "amazon-cognito-identity-js";
const userData = await Auth.currentSession().catch(e => console.log(e));
if (!userData) {
console.log(`User data : ${userData}`);
updateUser({} as CognitoUser);
return;
}
const {
idToken: { payload: CognitoIdToken }
} : CognitoUserSession = userData;
但我得到的错误是 idToken does not exist on type CognitoUserSession
但在其 class 中它存在。
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 CognitoAccessToken {
payload: { [key: string]: any };
constructor({ AccessToken }: { AccessToken: string });
public getJwtToken(): string;
public getExpiration(): number;
public getIssuedAt(): number;
public decodePayload(): { [id: string]: any };
}
export class CognitoIdToken {
payload: { [key: string]: any };
constructor({ IdToken }: { IdToken: string });
public getJwtToken(): string;
public getExpiration(): number;
public getIssuedAt(): number;
public decodePayload(): { [id: string]: any };
}
我认为 AWS 团队更新了 aws-amplify 包。如果你想解构使用旧包 aws-amplify
。您正在使用新包 @aws-amplify/auth
,它现在使用 getter 函数,因此您无法再解构。
尝试const { payload } = (await Auth.currentSession()).getIdToken()
我正在尝试在 userData
内从 idToken
解构 payload
。
userData
属于 CognitoUserSession
.
import { CognitoUser } from "@aws-amplify/auth";
import { CognitoUserSession, CognitoIdToken } from "amazon-cognito-identity-js";
const userData = await Auth.currentSession().catch(e => console.log(e));
if (!userData) {
console.log(`User data : ${userData}`);
updateUser({} as CognitoUser);
return;
}
const {
idToken: { payload: CognitoIdToken }
} : CognitoUserSession = userData;
但我得到的错误是 idToken does not exist on type CognitoUserSession
但在其 class 中它存在。
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 CognitoAccessToken {
payload: { [key: string]: any };
constructor({ AccessToken }: { AccessToken: string });
public getJwtToken(): string;
public getExpiration(): number;
public getIssuedAt(): number;
public decodePayload(): { [id: string]: any };
}
export class CognitoIdToken {
payload: { [key: string]: any };
constructor({ IdToken }: { IdToken: string });
public getJwtToken(): string;
public getExpiration(): number;
public getIssuedAt(): number;
public decodePayload(): { [id: string]: any };
}
我认为 AWS 团队更新了 aws-amplify 包。如果你想解构使用旧包 aws-amplify
。您正在使用新包 @aws-amplify/auth
,它现在使用 getter 函数,因此您无法再解构。
尝试const { payload } = (await Auth.currentSession()).getIdToken()