diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-06-15 18:19:56 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-15 18:19:56 +0300 |
commit | b860685d212200b5a46b7fea066306b851bf6e26 (patch) | |
tree | 18d27607f93a731d54d7a5fb8a3a681ddbf1673b /src/index.tsx | |
parent | 185ab6f4025ff41313b12efb8cff49009c1af85e (diff) | |
parent | dd297844bd602625804e0ddb0706e737ab655334 (diff) | |
download | which-ui-b860685d212200b5a46b7fea066306b851bf6e26.tar.gz |
Merge pull request #37 from ilyayudovin/token
Get access token
Diffstat (limited to 'src/index.tsx')
-rw-r--r-- | src/index.tsx | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/index.tsx b/src/index.tsx index 876491d..a06ec62 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -14,7 +14,7 @@ import ProfilePage from './pages/ProfilePage/ProfilePage'; import FeedPage from './pages/FeedPage/FeedPage'; import AuthPage from './pages/AuthPage/AuthPage'; import { User, Page } from './types'; -import { get } from './requests'; +import { get, post } from './requests'; const theme = createMuiTheme({ @@ -52,9 +52,26 @@ const App: React.FC = () => { } }; + const logIn = (name: string, password: string): Promise<boolean> => { + return post('/authentication', { + strategy: 'local', + name, + password + }).then(response => { + const me = response.data.user; + const token = response.data.accessToken; + setUser(me); + localStorage.setItem('userId', me._id); + localStorage.setItem('token', token); + navigate('profile', me._id); + return true; + }).catch(() => false); + }; + const logOut = () => { - localStorage.removeItem('userId'); setUser(undefined); + localStorage.removeItem('userId'); + localStorage.removeItem('token'); navigate('auth'); }; @@ -74,7 +91,7 @@ const App: React.FC = () => { <div className={classes.root}> { page.prefix === 'profile' && <ProfilePage logOut={logOut} id={page.id} navigate={navigate} /> } { page.prefix === 'feed' && <FeedPage navigate={navigate} /> } - { page.prefix === 'auth' && <AuthPage setUser={setUser} navigate={navigate} /> } + { page.prefix === 'auth' && <AuthPage logIn={logIn} /> } </div> </ThemeProvider> ); |