从2021年6月开始,AWS SDK JS v3不再支持在React Native应用程序中使用硬编码凭据。相反,它建议使用AWS Cognito身份池来管理应用程序的凭据。
以下是在React Native应用程序中使用AWS Cognito身份池的示例代码:
首先,安装所需的依赖项:
npm install amazon-cognito-identity-js aws-sdk-react-native aws-sdk
然后,创建一个Cognito身份池并配置您的凭据。
import { CognitoUserPool, CognitoUser, AuthenticationDetails } from 'amazon-cognito-identity-js';
import { Config } from 'aws-sdk-react-native';
const poolData = {
UserPoolId: '',
ClientId: ''
};
const userPool = new CognitoUserPool(poolData);
const authData = {
Username: '',
Password: ''
};
const authenticationDetails = new AuthenticationDetails(authData);
const cognitoUser = new CognitoUser({ Username: authData.Username, Pool: userPool });
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: (result) => {
const idToken = result.getIdToken().getJwtToken();
const accessToken = result.getAccessToken().getJwtToken();
const refreshToken = result.getRefreshToken().getToken();
// 配置AWS SDK
Config.region = '';
Config.credentials = {
identityPoolId: '',
Logins: {
[`cognito-idp.${Config.region}.amazonaws.com/${poolData.UserPoolId}`]: result.getIdToken().getJwtToken()
}
};
// 此时,您可以使用AWS SDK来调用AWS服务
},
onFailure: (err) => {
console.error(err);
}
});
在上面的代码中,您需要将,,,,和替换为您自己的值。
当用户通过Cognito身份池进行身份验证并获得令牌后,您可以使用配置的AWS SDK来调用AWS服务。
请注意,上述示例仅展示了在React Native应用程序中使用AWS Cognito身份池进行身份验证和配置AWS SDK的基本方法。根据您的具体需求,您可能需要进一步调整和扩展代码。