Advertisement
Guest User

Untitled

a guest
Oct 29th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2. import { Button, Card, CardBody, CardImg, CardGroup, Col, Container, Input, InputGroup, InputGroupAddon, InputGroupText, Row } from 'reactstrap';
  3. import axios from 'axios';
  4. import { Redirect } from 'react-router-dom';
  5. import generateRand from 'randomstring';
  6. import bcrypt from 'bcryptjs';
  7. import sinclair from '../../../assets/img/brand/logo6.png'
  8. import { ToastContainer, toast} from 'react-toastify';
  9. import 'react-toastify/dist/ReactToastify.css';
  10.  
  11. var restBaseAddrModule = require('../../../globals.js')
  12. var restBaseAddr = restBaseAddrModule.restBaseAddr
  13. var salt = bcrypt.genSaltSync(10);
  14.  
  15. // var hash = bcrypt.hashSync("B4c0/\/", salt);
  16. class Login extends Component {
  17.   constructor(props){
  18.     super(props)
  19.     this.state = {
  20.       username: '',
  21.       password: '',
  22.       loggedIn: false,
  23.       newUser: false,
  24.     }
  25.   }
  26.  
  27.   notify(response){
  28.     // console.log(response.data.status)
  29.     if(response.data.status == 'success') {
  30.       toast.success(response.data.toastStatus)
  31.     } else {
  32.       toast.error(response.data.toastStatus)
  33.     }
  34.   }
  35.  
  36.   handlerUsername(e){
  37.     this.setState({
  38.       username: e.target.value
  39.     })
  40.   }
  41.  
  42.   handlerPassword(e){
  43.     this.setState({
  44.       password: e.target.value
  45.     })
  46.   }
  47.  
  48.   componentDidMount(){
  49.     this.setState({
  50.       token: generateRand.generate(),
  51.     })
  52.   }
  53.  
  54.   loginUser(){
  55.     console.log(restBaseAddr)
  56.     // console.log(this.state.token);
  57.     // console.log(bcrypt.hashSync(this.state.password),salt);
  58.     axios.put(restBaseAddr + '/login',{
  59.         sesstionToken: "0x122333",
  60.         userName: this.state.username,
  61.         password: this.state.password,
  62.       })
  63.       .then((response)=>{
  64.         console.log(response.data)
  65.         console.log("successfull request")
  66.         if(response.data.status==='success') {
  67.           this.setState({
  68.             loggedIn: true
  69.           })}
  70.           else{this.notify(response);}
  71.       })
  72.       .catch(function (error) {
  73.         console.log(error);
  74.         console.log("failed request");
  75.     })
  76.   }
  77.  
  78.   newUser = () => {
  79.     this.setState({
  80.       newUser: true,
  81.     })
  82.   }
  83.  
  84.  
  85.   render() {
  86.     return (
  87.       <div className="app flex-row align-items-center">
  88.       {this.state.loggedIn? (<Redirect from="/" to="/combinerstatus" />)  : (<Redirect to="/Login"/>)}
  89.       {this.state.newUser?(<Redirect from="/" to="/register" />) : (<Redirect to="/Login" />)}
  90.       <ToastContainer autoClose={4000} />
  91.         <Container>
  92.           <Row className="justify-content-center">
  93.             <Col md="8">
  94.               <CardGroup>
  95.                 <Card className="p-4">
  96.                   <CardBody>
  97.                   <CardImg src={sinclair} />
  98.                  
  99.                     <h1>Login</h1>
  100.                     <p className="text-muted">Sign In to your account</p>
  101.                     <InputGroup className="mb-3">
  102.                       <InputGroupAddon addonType="prepend">
  103.                         <InputGroupText>
  104.                           <i className="icon-user"></i>
  105.                         </InputGroupText>
  106.                       </InputGroupAddon>
  107.                       <Input type="text" onChange={this.handlerUsername.bind(this)} placeholder="Username" />
  108.                     </InputGroup>
  109.                     <InputGroup className="mb-4">
  110.                       <InputGroupAddon addonType="prepend">
  111.                         <InputGroupText>
  112.                           <i className="icon-lock"></i>
  113.                         </InputGroupText>
  114.                       </InputGroupAddon>
  115.                       <Input type="password" onChange={this.handlerPassword.bind(this)} placeholder="Password" />
  116.                     </InputGroup>
  117.                     <Row>
  118.                       <Col xs="6">
  119.                         <Button color="primary" onClick={()=>this.loginUser()} className="px-4">Login</Button>
  120.                       </Col>
  121.                       {/*<Col xs="6" className="text-right">
  122.                           <Button color="link" onClick={this.newUser} className="px-0">Forgot password?</Button>
  123.                         </Col>*/}
  124.  
  125.                        
  126.                     </Row>
  127.                   </CardBody>
  128.                 </Card>
  129.                 {/*<Card className="text-white bg-primary py-5 d-md-down-none" style={{ width: 444 + '%' }}>
  130.                   <CardBody className="text-center">
  131.                     <div>
  132.                      
  133.                       {/*<Button color="primary" className="mt-3" active>Register Now!</Button>*}
  134.                     </div>
  135.                       </CardBody>
  136.                       </Card>*/}
  137.               </CardGroup>
  138.             </Col>
  139.           </Row>
  140.         </Container>
  141.       </div>
  142.     );
  143.   }
  144. }
  145.  
  146. export default Login;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement