diff --git a/src/server/lib/login.ts b/src/server/lib/login.ts index be47ea3..2649252 100644 --- a/src/server/lib/login.ts +++ b/src/server/lib/login.ts @@ -26,7 +26,7 @@ export async function login( await pa.login({ username, ip, domain: user.domain }) - const jwt = await jwtService.generateToken({ + const jwt = jwtService.generateToken({ displayName: user.displayName, username: user.username, domain: user.domain, diff --git a/src/server/trpc.ts b/src/server/trpc.ts index c61e2bd..486a0a3 100644 --- a/src/server/trpc.ts +++ b/src/server/trpc.ts @@ -16,6 +16,8 @@ function createContext({ req, res }: trpcExpress.CreateExpressContextOptions) { const jwtPayload = token ? jwtService.verifyToken(token) : null + console.log(jwtPayload) + return { ip, user: jwtPayload } } diff --git a/src/web/components/LoggedCard.vue b/src/web/components/LoggedCard.vue index b6fd21f..c68193c 100644 --- a/src/web/components/LoggedCard.vue +++ b/src/web/components/LoggedCard.vue @@ -43,7 +43,7 @@ import { PropType } from 'vue' import { trpc } from '../trpc' -import { LoginResult } from '@/server/schemas/Auth' +import { LoginResult } from '@/server/schemas/LoginResult' const props = defineProps({ loginResult: { @@ -58,10 +58,9 @@ async function onLogout() { 'Deseja realmente sair? Você será desconectado e não poderá navegar na Internet até fazer login novamente.' ) ) { - const success = await trpc.logout.mutate({ - username: props.loginResult.username, - domain: props.loginResult.domain - }) + const success = await trpc.logout.mutate() + + localStorage.removeItem('token') if (success) { alert('Você foi desconectado.') diff --git a/src/web/components/LoginForm.vue b/src/web/components/LoginForm.vue index 22ba62f..63831b2 100644 --- a/src/web/components/LoginForm.vue +++ b/src/web/components/LoginForm.vue @@ -65,9 +65,12 @@ import { ref, computed } from 'vue' import { trpc } from '../trpc' import { VForm } from 'vuetify/lib/components/index.mjs' import LoginErrorAlert from './LoginErrorAlert.vue' +import { useToken } from '../composables/useToken' const emit = defineEmits(['login']) +const { token } = useToken() + const username = ref('') const password = ref('') @@ -97,6 +100,10 @@ async function doLogin() { emit('login', loginResult) console.log(loginResult) + + if (loginResult.token) { + token.value = loginResult.token + } } catch (e: any) { console.log(e.message) error.value = e.message diff --git a/src/web/trpc.ts b/src/web/trpc.ts index d6a13ae..4fed199 100644 --- a/src/web/trpc.ts +++ b/src/web/trpc.ts @@ -8,7 +8,11 @@ const SERVER_URL = import.meta.env.VITE_SERVER_URL || '' export const trpc = createTRPCProxyClient({ links: [ httpBatchLink({ - url: `${SERVER_URL}/trpc` + url: `${SERVER_URL}/trpc`, + headers() { + const token = localStorage.getItem('token') + return token ? { Authorization: token } : {} + } }) ] })