Fixed refresh missing email issue
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import { getRequest, postRequest } from '.';
|
||||
import { RegisterUser, ResponseUser } from './auth.types';
|
||||
import { RegisterUser, ResponseAuth } from './auth.types';
|
||||
|
||||
export async function login(email: string, password: string): Promise<ResponseUser | undefined> {
|
||||
export async function login(email: string, password: string): Promise<ResponseAuth | undefined> {
|
||||
const response = await postRequest('auth/login', { email, password }, { withCredentials: true });
|
||||
if (response?.status === 200) {
|
||||
return response.data as ResponseUser;
|
||||
return response.data as ResponseAuth;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
@@ -23,16 +23,16 @@ export async function logout() {
|
||||
return await postRequest('auth/logout', {}, { withCredentials: true });
|
||||
}
|
||||
|
||||
export async function refresh(refresh_token_rotation?: boolean): Promise<ResponseUser | undefined> {
|
||||
export async function refresh(refresh_token_rotation?: boolean): Promise<ResponseAuth | undefined> {
|
||||
const response = await getRequest('auth/refresh', { withCredentials: true, params: { refresh_token_rotation } });
|
||||
if (response?.status === 200) {
|
||||
return response.data as ResponseUser;
|
||||
return response.data as ResponseAuth;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
export async function me(): Promise<ResponseUser | undefined> {
|
||||
export async function me(): Promise<ResponseAuth | undefined> {
|
||||
const response = await getRequest('auth/me', { withCredentials: true });
|
||||
if (response?.status === 200) {
|
||||
return response.data;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export interface ResponseUser {
|
||||
export interface ResponseAuth {
|
||||
token: string;
|
||||
user: User;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ import {
|
||||
import Cookies from 'js-cookie';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useForm } from '@mantine/form';
|
||||
import { login, register, logout, me } from '@/api/auth';
|
||||
import { login, register, logout, me, refresh } from '@/api/auth';
|
||||
import { User } from '@/api/auth.types';
|
||||
import { useToggle } from '@mantine/hooks';
|
||||
|
||||
@@ -82,7 +82,13 @@ export default function Topbar() {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
setUser(undefined);
|
||||
refresh(true).then((response) => {
|
||||
if (response) {
|
||||
setUser(response.user);
|
||||
} else {
|
||||
setUser(undefined);
|
||||
}
|
||||
});
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user