Advertisement
Guest User

Untitled

a guest
Jul 25th, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. this is loginform
  2. =============================
  3. import React, { Component } from 'react'
  4. import { Redirect } from 'react-router-dom'
  5. import googleButton from './google_signin_buttons/web/1x/btn_google_signin_dark_normal_web.png'
  6.  
  7. class LoginForm extends Component {
  8. constructor() {
  9. super()
  10. this.state = {
  11. username: "",
  12. password: "",
  13. redirectTo: null
  14. }
  15.  
  16. this.handleSubmit = this.handleSubmit.bind(this)
  17. this.handleChange = this.handleChange.bind(this)
  18.  
  19. }
  20.  
  21. handleChange(event) {
  22. this.setState({
  23. [event.target.name]: event.target.value
  24. })
  25. }
  26.  
  27. handleSubmit(event) {
  28. event.preventDefault()
  29. console.log('handleSubmit')
  30. this.props._login(this.state.username, this.state.password)
  31. this.setState({
  32. redirectTo: '/'
  33. })
  34. }
  35.  
  36. render() {
  37. if (this.state.redirectTo) {
  38. return <Redirect to={{ pathname: this.state.redirectTo }} />
  39. }
  40.  
  41. else
  42. {
  43. return (
  44. <div className="LoginForm">
  45. <h1>Login Form </h1>
  46. <form>
  47. <label htmlFor="username">Username: </label>
  48. <input
  49. type="text"
  50. name="username"
  51. value={this.state.username}
  52. onChange={this.handleChange}
  53. />
  54. <label htmlFor="password">Password: </label>
  55. <input
  56. type="password"
  57. name="password"
  58. value={this.state.password}
  59. onChange={this.handleChange}
  60. />
  61. <button onClick={this.handleSubmit}>Login</button>
  62. </form>
  63. <a href="http://localhost:4200/auth/google">
  64. <img src={googleButton} alt="sign into google account" />
  65. </a>
  66. </div>
  67. )
  68. }
  69. }
  70. }
  71.  
  72. export default LoginForm
  73.  
  74.  
  75.  
  76. =============================================
  77.  
  78.  
  79. this is app.js
  80. ===============
  81. _login(username, password) {
  82. axios.post('http://localhost:4200/auth/login', {
  83. username,
  84. password
  85. })
  86. .then(response => {
  87. console.log(response)
  88. if (response.status === 200) {
  89. this.setState({
  90. loggedIn: true,
  91. user:response.data.user
  92. })
  93. }
  94. })
  95. }
  96.  
  97. render() {
  98. return (
  99. <div className="App">
  100. <div className="Appheader">
  101. <Header user={this.state.user} />
  102. <DisplayLinks _logout={this._logout} loggedIn={this.state.loggedIn} />
  103. <Route exact path="/" render={() => <Home user={this.state.user} />} />
  104. <Route exact path="/login" render={() => <LoginForm
  105. _login={this._login}
  106. _googleSignin={this._googleSignin}
  107. />}
  108. />
  109. <Route exact path="/signup" component={SignupForm} />
  110. {/*<Route path='/add-item' component={AddItem} />
  111. <Route path='/edit/:id' component={EditItem} />*/}
  112. </div>
  113.  
  114. <div>
  115. <h2>Welcome to React</h2>
  116. <Link to={"/add-item"} className="btn btn-primary">Add New</Link>
  117.  
  118. <IndexItem />
  119. </div>
  120.  
  121.  
  122. {/*<div>
  123. {this.props.children}
  124. </div>*/}
  125.  
  126. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement