Guest User

Untitled

a guest
Oct 19th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import TextField from '@material-ui/core/TextField';
  3. import Button from '@material-ui/core/Button';
  4. import Snackbar from '@material-ui/core/Snackbar';
  5. import Carlist from './Carlist';
  6. import {SERVER_URL} from '../constants.js';
  7.  
  8. class Login extends Component {
  9. constructor(props) {
  10. super(props);
  11. this.state = {username: '', password: '', isAuthenticated: false, open: false};
  12. }
  13.  
  14. logout = () => {
  15. sessionStorage.removeItem("jwt");
  16. this.setState({isAuthenticated: false});
  17. }
  18.  
  19. login = () => {
  20. const user = {username: this.state.username, password: this.state.password};
  21. fetch(SERVER_URL + 'login', {
  22. method: 'POST',
  23. body: JSON.stringify(user)
  24. })
  25. .then(res => {
  26. const jwtToken = res.headers.get('Authorization');
  27. if (jwtToken !== null) {
  28. sessionStorage.setItem("jwt", jwtToken);
  29. this.setState({isAuthenticated: true});
  30. }
  31. else {
  32. this.setState({open: true}); // maintient snackbar ouvert
  33. }
  34. })
  35. .catch(err => console.error(err))
  36. }
  37.  
  38. handleChange = (event) => {
  39. this.setState({[event.target.name] : event.target.value});
  40. }
  41.  
  42. handleClose = (event) => {
  43. this.setState({ open: false });
  44. }
  45.  
  46. render() {
  47. if (this.state.isAuthenticated === true) {
  48. return (<Carlist />)
  49. }
  50. else {
  51. return (
  52. <div>
  53. <br/>
  54. <TextField tpye="text" name="username" placeholder="Username"
  55. onChange={this.handleChange} /><br/>
  56. <TextField type="password" name="password" placeholder="Password"
  57. onChange={this.handleChange} /><br /><br/>
  58. <Button variant="raised" color="primary" onClick={this.login}>Login</Button>
  59. <Snackbar
  60. open={this.state.open} onClose={this.handleClose}
  61. autoHideDuration={1500} message='Check your username and password' />
  62. </div>
  63. );
  64. }
  65. }
  66. }
  67.  
  68. export default Login;
  69.  
  70. localStorage.setItem("jwt", jwtToken)
  71.  
  72. sessionStorage.setItem("jwt", jwtToken);
Add Comment
Please, Sign In to add comment