From 6159748814f67aaf5a382a787d0861c49a9ffb68 Mon Sep 17 00:00:00 2001 From: Rafal Galka Date: Sun, 9 Feb 2020 00:37:24 +0100 Subject: [PATCH] feat(web): intergate login with api --- apps/api/src/main.ts | 4 ++++ apps/web/src/modules/auth/domain/token.ts | 1 + apps/web/src/modules/auth/store/actions.ts | 20 +++++++------------- apps/web/src/modules/auth/views/login.vue | 4 ++-- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/apps/api/src/main.ts b/apps/api/src/main.ts index 36f3919..3636b71 100644 --- a/apps/api/src/main.ts +++ b/apps/api/src/main.ts @@ -3,6 +3,10 @@ import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); + + // TODO configure allowed origins + app.enableCors(); + const globalPrefix = 'api'; app.setGlobalPrefix(globalPrefix); const port = process.env.PORT || 3000; diff --git a/apps/web/src/modules/auth/domain/token.ts b/apps/web/src/modules/auth/domain/token.ts index 29d620a..6c88384 100644 --- a/apps/web/src/modules/auth/domain/token.ts +++ b/apps/web/src/modules/auth/domain/token.ts @@ -2,6 +2,7 @@ import { InitializerTask } from '~app/core'; import store from '~app/core/store'; import { authActions } from '../store'; +// TODO shared DTO export interface AuthToken { access: string; refresh: string; diff --git a/apps/web/src/modules/auth/store/actions.ts b/apps/web/src/modules/auth/store/actions.ts index d34681d..e2a5627 100644 --- a/apps/web/src/modules/auth/store/actions.ts +++ b/apps/web/src/modules/auth/store/actions.ts @@ -1,3 +1,4 @@ +import axios from 'axios'; import { RootState } from '~app/core/store'; import { createActionFactory } from '~app/shared/store'; import { AuthToken, loadStoredToken } from '../domain/token'; @@ -21,19 +22,12 @@ export const actions = { return; } - // TODO API service - return new Promise((resolve, reject) => - setTimeout(() => { - if (login === 'admin@example.com' && password === 'password') { - const res: AuthToken = { access: 'access_token', refresh: 'refresh_token' }; - - commit(authMutations.setToken, res, { root: true }); - resolve(res); - } else { - reject(); - } - }, 500), - ); + return axios + .post('/auth', { + login, + password, + }) + .then(res => commit(authMutations.setToken, res.data, { root: true })); }), logout: createAction(({ commit }) => { diff --git a/apps/web/src/modules/auth/views/login.vue b/apps/web/src/modules/auth/views/login.vue index af6201a..8622a2a 100644 --- a/apps/web/src/modules/auth/views/login.vue +++ b/apps/web/src/modules/auth/views/login.vue @@ -19,8 +19,8 @@