typescript - 对象的类型未知,使用 AWS Cognito 身份验证
问题描述
我正在尝试使用我的react
应用程序设置 AWS Cognito 身份验证。当我尝试从返回对象中检索一些值时,出现以下错误
Object is of type 'unknown'.ts(2571)
我正在寻找解决此问题的方法,但我不知道如何声明该值来解决此问题。到目前为止,我的代码类似于案例 1 和案例 4的 AWS Cognito 的 npm 文档中的内容。
- 代码 -
import { AuthActionTypes, AuthState } from '../types/auth';
import * as actionTypes from '../types/actionTypes';
import { Dispatch } from 'redux';
import { RootState, RootActionTypes } from '../index.';
import cognitoSignIn from '../../util/SignIn/SignIn';
import cognitoSignUp from '../../util/SignUp/SignUp';
export const authStart = (): AuthActionTypes => {
return {
type: actionTypes.AUTH_START
};
};
export const authSuccess = ( token: string, userId: string ): AuthActionTypes => {
return {
type: actionTypes.AUTH_SUCCESS,
idToken: token,
userId: userId
};
};
export const authFail = ( error: Error ): AuthActionTypes => {
return {
type: actionTypes.AUTH_FAIL,
error: error
};
};
export const auth = (email: string, password: string, loginMethod: string) => {
return ( dispatch: Dispatch<RootActionTypes>, getState: () => RootState) => {
dispatch(authStart());
if (loginMethod === "SignUp") {
cognitoSignUp( email, password );
} else if ( loginMethod === "SignIn" ) {
cognitoSignIn( email, password ).then(
( response ) => { /* HERE IS THE PROBLEM */
dispatch(authSuccess(response.idToken.jwtToken, response.accessToken.payload.client_id));
}).catch(
( err ) => {
console.log(err.message);
dispatch(authFail(err.message));
}
);
};
};
};
cognitoSignIn
可以在以下位置找到SignIn.ts
:
import { AuthenticationDetails, CognitoUserPool, CognitoUser } from 'amazon-cognito-identity-js';
const cognitoSignIn = (email: string, password: string) => new Promise((resolve, reject) => {
const authenticationData = {
Username: email,
Password: password
};
const authenticationDetails = new AuthenticationDetails( authenticationData );
const poolData = {
UserPoolId : XXXXXXXX,
ClientId : XXXXXXXX
};
const userPool = new CognitoUserPool(poolData);
const userData = {
Username: email,
Pool: userPool
};
const cognitoUser = new CognitoUser( userData );
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: result => {
resolve(result);
},
onFailure: err => {
reject(err);
}
});
});
export default cognitoSignIn;
解决方案
推荐阅读
- python - 雪花“PARTITION BY”复制选项,包括输出数据集中的分区列
- powershell - 发生奇怪的 Powershell 子字符串/替换问题
- javascript - 哪一个?Node-jws 还是 node-jsonwebtoken?
- python - Pandas 按多列分组并返回排序列表
- sql-server - 比较两个查询的结果并返回缺失的行
- python - Jupyter 笔记本断开连接,我有失去工作的风险
- javascript - Content-Type 被 json 对象覆盖
- python - discord.py 我想让机器人对你好,你好等做出反应
- arrays - 预测二维矩阵之外的值 - (二维回归?)
- docker - Dockerfile 中的 SSHFS 挂载失败,除非它来自 ENTRYPOINT