Guest User

Untitled

a guest
Aug 6th, 2018
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1. import React,{Component} from 'react';
  2.  
  3. export default class Register extends Component{
  4. constructor(props){
  5. super(props);
  6.  
  7. this.state = {
  8. name: '',
  9. email: '',
  10. password: '',
  11. confirm_password: ''
  12. }
  13. }
  14.  
  15. updateInput = (event) =>{
  16. const name = event.target.name;
  17. const value = event.target.value;
  18.  
  19. this.setState({[name]: value});
  20. }
  21.  
  22. handleSubmit = (event)=>{
  23. event.preventDefault();
  24. fetch('http://incomeexpense.stacklearning.com/api/users', {
  25. method: 'POST',
  26. body: JSON.stringify({
  27. name: this.state.name,
  28. email: this.state.email,
  29. password: this.state.password,
  30. confirm_password: this.state.confirm_password
  31. }),
  32. headers: {
  33. "Content-Type": "application/json",
  34. "Origin": "localhost:3000",
  35. }
  36. }).then(function (response) {
  37. console.log(response);
  38. },function (error) {
  39. console.log(error);
  40. });
  41. }
  42.  
  43. render(){
  44. return(
  45. <div className="limiter">
  46. <div className="container-login100">
  47. <div className="wrap-login100 p-l-85 p-r-85 p-t-55 p-b-55">
  48. <form className="login100-form validate-form flex-sb flex-w" onSubmit={this.handleSubmit}>
  49. <span className="login100-form-title p-b-32">
  50. Sign Up
  51. </span>
  52. <span className="txt1 p-b-11">
  53. Name
  54. </span>
  55. <div className="wrap-input100 validate-input m-b-36" >
  56. <input className="input100" type="text" name="name" value={this.state.name} onChange={this.updateInput}/>
  57. <span className="focus-input100"></span>
  58. </div>
  59. <span className="txt1 p-b-11">
  60. Email
  61. </span>
  62. <div className="wrap-input100 validate-input m-b-36">
  63. <input className="input100" type="text" name="email" value={this.state.email} onChange={this.updateInput}/>
  64. <span className="focus-input100"></span>
  65. </div>
  66. <span className="txt1 p-b-11">
  67. Password
  68. </span>
  69. <div className="wrap-input100 validate-input m-b-36">
  70. <input className="input100" type="password" name="password" value={this.state.password} onChange={this.updateInput}/>
  71. <span className="focus-input100"></span>
  72. </div>
  73. <span className="txt1 p-b-11">
  74. Confirm Password
  75. </span>
  76. <div className="wrap-input100 validate-input m-b-18">
  77. <input className="input100" type="password" name="confirm_password" value={this.state.confirm_password} onChange={this.updateInput}/>
  78. <span className="focus-input100"></span>
  79. </div>
  80. <div className="container-login100-form-btn">
  81. <button className="login100-form-btn">
  82. Register
  83. </button>
  84. </div>
  85. <div className="flex-sb-m w-full p-b-48 m-t-60 text-center">
  86. <label>
  87. Already have an account ?
  88. <a className="txt3 m-l-5" href="/login">
  89. Sign In Now
  90. </a>
  91. </label>
  92. </div>
  93. </form>
  94. </div>
  95. </div>
  96. </div>
  97. );
  98. }
  99. }
  100.  
  101. Route::middleware('auth:api')->get('/user', function (Request $request) {
  102. return $request->user();
  103. });
  104.  
  105. Route::post('users',array( 'middleware'=>'cors','uses'=>'AuthRegisterController@registerUser'));
  106. Route::get('users',array( 'middleware'=>'cors','uses'=>'AuthRegisterController@getUsers'));
  107.  
  108. <?php
  109.  
  110. namespace AppHttpMiddleware;
  111.  
  112. use Closure;
  113.  
  114. class CORS
  115. {
  116. /**
  117. * Handle an incoming request.
  118. *
  119. * @param IlluminateHttpRequest $request
  120. * @param Closure $next
  121. * @return mixed
  122. */
  123. public function handle($request, Closure $next)
  124. {
  125. header('Access-Control-Allow-Origin: http://localhost:3000/');
  126. header('Access-Control-Allow-Credentials: true');
  127.  
  128. // ALLOW OPTIONS METHOD
  129. $headers = [
  130. 'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
  131. 'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin'
  132. ];
  133.  
  134. if($request->getMethod() == "OPTIONS") {
  135. // The client-side application can set only headers allowed in Access-Control-Allow-Headers
  136. return Response::make('OK', 200, $headers);
  137. }
  138.  
  139. $response = $next($request);
  140. foreach($headers as $key => $value)
  141. $response->header($key, $value);
  142.  
  143. return $next($request);
  144. }
  145. }
  146.  
  147. protected function create(array $data)
  148. {
  149. return User::create([
  150. 'name' => $data['name'],
  151. 'email' => $data['email'],
  152. 'password' => bcrypt($data['password']),
  153. ]);
  154. }
  155.  
  156. protected function registerUser(Request $request)
  157. {
  158. $data = $request->all();
  159. return response()->json($this->create($data));
  160. }
Add Comment
Please, Sign In to add comment