作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 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 在类型 CognitoUserSession 上不存在
但在它的类中它存在。
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()
关于typescript - 类型 'idToken' 上不存在属性 'CognitoUserSession',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64821492/
我正在尝试从 userData 中的 idToken 中解构 payload。 userData 属于 CognitoUserSession 类型。 import { CognitoUser } fr
这是总是出错的行 String sess = "workid_token=" + AppHelper.getCurrSession().getIdToken().getJWTToken
我是一名优秀的程序员,十分优秀!