amazon-cognito-identity-js-typescript
Version:
Amazon Cognito Identity Provider JavaScript SDK
76 lines (66 loc) • 1.87 kB
JSX
import {Config, CognitoIdentityCredentials} from "aws-sdk";
import {
CognitoUserPool,
CognitoUserAttribute
} from "amazon-cognito-identity-js";
import React from "react";
import ReactDOM from "react-dom";
import appConfig from "./config";
Config.region = appConfig.region;
Config.credentials = new CognitoIdentityCredentials({
IdentityPoolId: appConfig.IdentityPoolId
});
const userPool = new CognitoUserPool({
UserPoolId: appConfig.UserPoolId,
ClientId: appConfig.ClientId,
});
class SignUpForm extends React.Component {
constructor(props) {
super(props);
this.state = {
email: '',
password: '',
};
}
handleEmailChange(e) {
this.setState({email: e.target.value});
}
handlePasswordChange(e) {
this.setState({password: e.target.value});
}
handleSubmit(e) {
e.preventDefault();
const email = this.state.email.trim();
const password = this.state.password.trim();
const attributeList = [
new CognitoUserAttribute({
Name: 'email',
Value: email,
})
];
userPool.signUp(email, password, attributeList, null, (err, result) => {
if (err) {
console.log(err);
return;
}
console.log('user name is ' + result.user.getUsername());
console.log('call result: ' + result);
});
}
render() {
return (
<form onSubmit={this.handleSubmit.bind(this)}>
<input type="text"
value={this.state.email}
placeholder="Email"
onChange={this.handleEmailChange.bind(this)}/>
<input type="password"
value={this.state.password}
placeholder="Password"
onChange={this.handlePasswordChange.bind(this)}/>
<input type="submit"/>
</form>
);
}
}
ReactDOM.render(<SignUpForm />, document.getElementById('app'));