Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from "react";
  2. import { PageHeader, Button, FormGroup, FormControl, ControlLabel } from "react-bootstrap";
  3. import { Link, Redirect } from "react-router-dom";
  4. import "./Login.css";
  5.  
  6.  
  7. export default class Login extends Component {
  8.   constructor(props) {
  9.     super(props);
  10.  
  11.     this.state = {
  12.       username: "",
  13.       password: "",
  14.       isloggedIn: false,
  15.     };
  16.   };
  17.  
  18.   usernameChanged = (event) => {
  19.     this.setState({ username: event.target.value });
  20.   }
  21.  
  22.   passwordChanged = (event) => {
  23.     this.setState({ password: event.target.value });
  24.   }
  25.  
  26.   handleLogin = (event) => {
  27.     if(event === "true"){
  28.       this.setState({ isloggedIn: true });
  29.     }
  30.   }
  31.  
  32.   login = () => {
  33.     authenticationObject.authenticate(this.state.username, this.state.password, this.handleLogin);
  34.   }
  35.  
  36.   render() {
  37.  
  38.     if(this.state.isloggedIn){
  39.       return <Redirect to={"/profile/" + sessionStorage.getItem('id')} />;
  40.     }
  41.  
  42.     return (
  43.       <div>
  44.         <PageHeader><center>Login</center></PageHeader>
  45.         <div className="Login">
  46.           <input type="text" placeholder="Username" value={this.state.username} onChange={this.usernameChanged} />
  47.           <input type="text" placeholder="Password" value={this.state.password} onChange={this.passwordChanged} />
  48.           <button onClick={this.login}> Log in </button>
  49.         </div>
  50.       </div>
  51.     );
  52.   }
  53. }
  54.  
  55. const authenticationObject = {
  56.   authenticate(username, password, cb){
  57.     fetch('/api/login', {
  58.       method: "POST",
  59.       headers: {
  60.         "Content-Type": "application/json; charset=utf-8",
  61.       },
  62.       body: JSON.stringify({
  63.         username: username,
  64.         password: password,
  65.       }),
  66.     }).then(response => {
  67.       if(response.status === 200){
  68.         console.log("Correct Credentials");
  69.         return response.json();
  70.       }
  71.     }).then(body => {
  72.       console.log(body.username);
  73.       console.log(body.id);
  74.       sessionStorage.setItem('id', body.id);
  75.       sessionStorage.setItem('username', body.username);
  76.       sessionStorage.setItem('loggedIn', "true");
  77.       cb(sessionStorage.getItem('loggedIn'));
  78.     }).catch(() => {
  79.       console.log("Wrong Credentials");
  80.       cb(sessionStorage.getItem('loggedIn'));
  81.     })
  82.   },
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement