Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. import * as React from 'react';
  2.  
  3. export default class App extends React.Component<{}, IProps> {
  4. constructor(props: {}) {
  5. super(props);
  6.  
  7. this.state = {
  8. isLogged: false,
  9. user: '',
  10. token: '',
  11. login: '',
  12. password: ''
  13. };
  14. }
  15.  
  16. async componentDidMount() {
  17. const token = await window.localStorage.getItem('token');
  18. if (token) {
  19. const user = await window.localStorage.getItem('user');
  20. this.setState({
  21. isLogged: true,
  22. token: token
  23. });
  24. console.log(user);
  25. }
  26. }
  27.  
  28. doLogin(e: any) {
  29. e.preventDefault();
  30. const data = {login: this.state.login, password: this.state.password};
  31. fetch('http://localhost:8080/login', {
  32. method: 'POST',
  33. body: JSON.stringify(data)
  34. }).then((res) => res.json())
  35. .then((data) => {
  36. window.localStorage.setItem('user', data.user);
  37. window.localStorage.setItem('token', data.token);
  38. })
  39. .catch((err) => console.error(err))
  40. }
  41.  
  42. render() {
  43. return (
  44. <div>
  45. {this.state.isLogged ? (
  46. <span>{this.state.token}</span>
  47. ) : (
  48. <form>
  49. <input type="text"
  50. value={this.state.login}
  51. onChange={e => this.setState({login: e.target.value})}/>
  52. <input type="password"
  53. value={this.state.password}
  54. onChange={e => this.setState({password: e.target.value})}/>
  55. <button onClick={e => this.doLogin(e)}>Login</button>
  56. </form>
  57. )}
  58. </div>
  59. );
  60. }
  61. }
  62.  
  63. interface IProps {
  64. isLogged: boolean;
  65. user: string;
  66. token: string;
  67. login: string;
  68. password: string;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement