Changeset 5a9c93b for my-react-app
- Timestamp:
- 03/05/24 14:15:44 (15 months ago)
- Branches:
- main
- Children:
- db39d9e
- Parents:
- a2c6c2b
- Location:
- my-react-app/src
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
my-react-app/src/axios_helper.js
ra2c6c2b r5a9c93b 4 4 axios.defaults.headers.post["Content-Type"] = 'application/json' 5 5 6 export const getAuthToken = () => { 7 return window.localStorage.getItem("auth_token"); 8 } 9 10 export const setAuthToken = (token) => { 11 window.localStorage.setItem("auth_token", token); 12 } 13 6 14 export const request = (method, url, data) => { 15 let headers = {}; 16 if(getAuthToken() !== null && getAuthToken() !== "null") { 17 headers = {"Authorization" : `Bearer ${getAuthToken()}`}; 18 } 19 7 20 return axios({ 8 21 method: method, -
my-react-app/src/components/AppContent.js
ra2c6c2b r5a9c93b 2 2 import WelcomeContent from "./WelcomeContent"; 3 3 import AuthContent from "./AuthContent"; 4 import LoginForm from "./LoginForm"; 5 import { request, setAuthToken } from "../axios_helper"; 6 import Buttons from './Buttons' 4 7 5 8 export default class AppContent extends React.Component { 9 constructor(props) { 10 super(props); 11 this.state = { 12 componentToShow: "welcome" 13 }; 14 }; 15 16 login = () => { 17 this.setState({componentToShow: "login"}) 18 } 19 20 logout = () => { 21 this.setState({componentToShow: "welcome"}) 22 } 23 24 onLogin = (e, email, password) => { 25 e.preventDefault(); 26 request( 27 "POST", 28 "/api/login", 29 {login: email, password: password} 30 ).then((response) => { 31 this.setState({componentToShow: "restaurants"}) 32 setAuthToken(response.data.token); 33 }).catch((error) => { 34 this.setState({componentToShow: "welcome"}) 35 }); 36 }; 37 38 onRegister = (e, firstName, lastName, email, password) => { 39 e.preventDefault(); 40 request( 41 "POST", 42 "/api/register", 43 { 44 firstName: firstName, 45 lastName: lastName, 46 login: email, 47 password: password 48 } 49 ).then((response) => { 50 this.setState({componentToShow: "restaurants"}) 51 setAuthToken(response.data.token); 52 }).catch((error) => { 53 this.setState({componentToShow: "welcome"}) 54 }); 55 }; 56 6 57 render() { 7 58 return ( 8 59 <div> 9 <WelcomeContent/> 10 <AuthContent/> 60 <Buttons login={this.login} logout={this.logout}></Buttons> 61 {this.state.componentToShow === "welcome" && <WelcomeContent/>} 62 {this.state.componentToShow === "restaurants" && <AuthContent/>} 63 {this.state.componentToShow === "login" && <LoginForm onLogin={this.onLogin} onRegister={this.onRegister}/>} 11 64 </div> 12 65 )
Note:
See TracChangeset
for help on using the changeset viewer.