Reputation: 929
I'm using AWS Amplify library in my react native project with manual configuration to sign in. I'm able to login in android application with react native project, but when i run the same react native code in ios, i'm getting the below error. I'm fetching my amplify configuration params data from .env files in react native.
I have followed these steps for iOS pod install for setting up the Amplify library https://docs.amplify.aws/lib/auth/start/q/platform/js#configure-your-application
I have installed all the pods in iOS related to https://www.npmjs.com/package/react-native-config and amplify libraries.
// import Amplify, { Auth } from 'aws-amplify';
import Amplify from '@aws-amplify/core';
import Auth from '@aws-amplify/auth';
/** Configration of Cognito Auth Process for mobile client */
Amplify.configure({
Auth: {
// REQUIRED only for Federated Authentication - Amazon Cognito Identity Pool ID
identityPoolId: Config.REACT_APP_AWS_COGNITO_IDENTITY_POOL_ID,
// REQUIRED - Amazon Cognito Region
region: Config.REACT_APP_AWS_COGNITO_REGION,
// OPTIONAL - Amazon Cognito User Pool ID
userPoolId: Config.REACT_APP_AWS_COGNITO_USER_POOL_ID,
// OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)
userPoolWebClientId: Config.REACT_APP_AWS_COGNITO_USER_POOL_WEB_CLIENT_ID,
// OPTIONAL - Enforce user authentication prior to accessing AWS resources or not
mandatorySignIn: false,
// OPTIONAL - Manually set the authentication flow type. Default is 'USER_SRP_AUTH'
authenticationFlowType: 'USER_PASSWORD_AUTH',
// OPTIONAL - Hosted UI configuration
oauth: {
domain: Config.REACT_APP_AWS_COGNITO_OAUTH_DOMAIN,
scope: ['openid', 'aws.cognito.signin.user.admin'],
redirectSignIn: Config.REACT_APP_AWS_COGNITO_OAUTH_REDIRECT_SIGNIN,
redirectSignOut: Config.REACT_APP_AWS_COGNITO_OAUTH_REDIRECT_SIGNOUT,
responseType: Config.REACT_APP_AWS_COGNITO_OAUTH_RESPONSE_TYPE, // or 'token', note
that REFRESH token will only be generated when the responseType is code
}
}.
});
// You can get the current config object
const currentConfig = Auth.configure();
//Usage
Auth.signIn(username, password).then(
(result) => {
console.log(result);
if(result instanceof CognitoUser){
console.log(result.getSignInUserSession()?.getAccessToken().getJwtToken());
console.log(result.getSignInUserSession()?.getIdToken());
console.log(result.getSignInUserSession()?.getRefreshToken());
}
this.props.navigation.replace('ChangePassword');
}
).catch(
(error) => {
console.log('################# SignIn Error :');
console.log(error);
}
)
} catch (exception) {
console.log(exception);
console.log('################# Exception in SignIn API call');
}
Not able to figure out what was the issue.
[ERROR] 27:54.153 AuthError -
Error: Amplify has not been configured correctly.
The configuration object is missing required auth properties.
Did you run `amplify push` after adding auth via `amplify add auth`?
See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for
more information
Please let me know why exactly the above code is showing error when i run in iOS.
Upvotes: 5
Views: 2935
Reputation: 1014
I had issue with react-native-config setup for android. I forget to do this extra step for android. My config was undefined
Upvotes: 1
Reputation: 1
I had the same problem after updating my version of Amplify. I deleted the node_modues folder and package-lock.json. I ran 'npm install' and that fixed it.
Upvotes: 0