Guest User

Untitled

a guest
Nov 22nd, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.78 KB | None | 0 0
  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import './index.css';
  4. import * as serviceWorker from './serviceWorker';
  5. import Sobre from './Sobre.js';
  6. import { BrowserRouter, Switch, Route } from 'react-router-dom';
  7. import Dashboard from './ui/Dashboard';
  8. import LoginForm from './ui/LoginForm';
  9.  
  10. ReactDOM.render(
  11. <BrowserRouter>
  12. <Switch>
  13. <Route path="/" exact={true} component={LoginForm} />
  14. <Route path="/sobre" component={Sobre} />
  15. <Route path="/dashboard" component={Dashboard} />
  16. </Switch>
  17. </BrowserRouter>
  18. ,document.getElementById('root'));
  19.  
  20. // If you want your app to work offline and load faster, you can change
  21. // unregister() to register() below. Note this comes with some pitfalls.
  22. serviceWorker.register();
  23.  
  24. import React, { Component } from 'react';
  25.  
  26.  
  27. export default class LoginForm extends Component{
  28.  
  29. constructor(){
  30. super();
  31.  
  32. this.state = {
  33. login: '',
  34. senha: '',
  35. authenticate_code: '',
  36. url: 'http://192.168.0.19/api/'
  37. };
  38.  
  39. this.handleLogin = this.handleLogin.bind(this);
  40. this.isUser = this.isUser.bind(this);
  41. }
  42.  
  43. handleLogin(e){
  44.  
  45. e.preventDefault();
  46.  
  47. let dataToGetToken= {
  48. nome: "teste",
  49. senha: "1234"
  50. };
  51.  
  52. try{
  53. fetch(this.state.url + 'token', {
  54. method: 'POST',
  55. body: JSON.stringify(dataToGetToken),
  56. headers: {
  57. "Content-type": "application/json; charset=UTF-8"
  58. }
  59. })
  60. .then(response => response.json())
  61. .then(json => {
  62. this.setState({ authenticate_code: 'bearer ' + json.token })
  63. this.isUser(this.refs.login.value, this.refs.pass.value, this.state.authenticate_code);
  64. });
  65. }
  66. catch(e){
  67. console.log(e);
  68. }
  69.  
  70. }
  71.  
  72. isUser(name, pass, token){
  73.  
  74. var login = new Object();
  75. login.nome = name;
  76. login.senha = pass;
  77. console.log(login);
  78. console.log(token);
  79. try{
  80. fetch(this.state.url + 'usuarios/getuser', {
  81. method: 'POST',
  82. body: JSON.stringify(login),
  83. headers: {
  84. "Authorization": token,
  85. "Content-type": "application/json; charset=UTF-8"
  86. }
  87. })
  88. .then(response => response.json())
  89. .then(json => {
  90. //Redireciona
  91. this.props.history.push('/ui/Dashboard')
  92. });
  93. }
  94. catch(e){
  95. console.log(e);
  96. }
  97.  
  98. }
  99.  
  100. render(){
  101. return(
  102. <div className="App">
  103. <div className="container">
  104. <div className="row">
  105. <div className="col-sm-12">
  106. <form onSubmit={this.handleLogin}>
  107. <div className="form-group">
  108. <label htmlFor="exampleInputEmail1">Login</label>
  109. <input type="text" ref="login" className="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email"/>
  110. <small id="emailHelp" className="form-text text-muted">We'll never share your email with anyone else.</small>
  111. </div>
  112. <div className="form-group">
  113. <label htmlFor="exampleInputPassword1">Senha</label>
  114. <input type="password" ref="pass" className="form-control" id="exampleInputPassword1" placeholder="Password" />
  115. </div>
  116. <div className="form-group form-check">
  117. <input type="checkbox" className="form-check-input" id="exampleCheck1" />
  118. <label className="form-check-label" htmlFor="exampleCheck1">Check me out</label>
  119. </div>
  120. <button type="submit" className="btn btn-primary">Submit</button>
  121. </form>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. );
  127. }
  128. }
  129.  
  130. import React, { Component } from 'react';
  131.  
  132. export default class Dashboard extends React.Component {
  133.  
  134. constructor(props) {
  135. super(props);
  136. }
  137.  
  138. render() {
  139. return (
  140. <div></div>
  141. );
  142. }
  143. }
  144.  
  145. class Login extends Component {
  146. constructor(props) {
  147. super(props);
  148. this.state = {};
  149. }
  150.  
  151. login = () => {
  152. const { username, password } = this.state;
  153. const data = {};
  154. data.client_id = Config.CLIENT_ID;
  155. data.client_secret = Config.CLIENT_SECRET;
  156. data.grant_type = 'password';
  157. data.username = username;
  158. data.password = password;
  159. data.scope = '';
  160. const { ...props } = this.props;
  161. props.onLogin(data);
  162. };
  163.  
  164. verificaToken = () => {
  165. if (localStorage.str_storage_tk) {
  166. Config.TOKEN = JSON.parse(localStorage.str_storage_tk);
  167. Config.AUTH_TYPE = 'Bearer ';
  168. }
  169. };
  170.  
  171. render() {
  172. if (isAuthenticated()) {
  173. return <Redirect to="/perfil" />;
  174. }
  175. const { ...props } = this.props;
  176. return (
  177. <Loadable
  178. active={props.isLoading}
  179. spinner
  180. background="rgba(245,245,245, 0.7)"
  181. color="#000"
  182. text="Aguarde..."
  183. spinnerSize="115px"
  184. >
  185. Implementação do HTML
  186. </Loadable>
  187. );
  188. }
  189. }
  190.  
  191. const mapDispatchToProps = dispatch => ({
  192. onLogin: data => dispatch(login(data)),
  193. });
  194.  
  195. const mapStateToProps = state => ({
  196. isLoading: state.ui.isLoading,
  197. });
  198.  
  199. export default connect(
  200. mapStateToProps,
  201. mapDispatchToProps,
  202. )(Login);
Add Comment
Please, Sign In to add comment