[feat] Implement sso flow
This commit is contained in:
@@ -2,7 +2,6 @@ import { AxiosInstance } from 'axios';
|
||||
import Header from '../_APITool/Header';
|
||||
import {
|
||||
UserAPIProps,
|
||||
PostUserRefreshAPIPromise,
|
||||
GetUserSingleSignInAPIPromise,
|
||||
GetUserAccountInfoAPIPromise,
|
||||
PostUserSignOutAPIPromise,
|
||||
@@ -12,7 +11,7 @@ export function CreatUserAPI({ axios, header }: { axios: AxiosInstance; header:
|
||||
return {
|
||||
getUserSSO: async (backUrl: string): Promise<GetUserSingleSignInAPIPromise> => {
|
||||
try {
|
||||
const res = await axios.get('/account/login/sso', {
|
||||
const res = await axios.get('/login', {
|
||||
params: {
|
||||
back_url: backUrl,
|
||||
},
|
||||
@@ -26,44 +25,25 @@ export function CreatUserAPI({ axios, header }: { axios: AxiosInstance; header:
|
||||
return errorMessage;
|
||||
}
|
||||
},
|
||||
postUserRefreshToken: async (): Promise<PostUserRefreshAPIPromise> => {
|
||||
try {
|
||||
const res = await axios.post('/account/refresh_token', undefined, {
|
||||
headers: { ...header.header },
|
||||
});
|
||||
return res.data;
|
||||
} catch (error) {
|
||||
const errorMessage = {
|
||||
token: '',
|
||||
error: error.response?.data,
|
||||
};
|
||||
return errorMessage;
|
||||
}
|
||||
},
|
||||
getUserAccountInfo: async (): Promise<GetUserAccountInfoAPIPromise> => {
|
||||
try {
|
||||
const res = await axios.get('/account', {
|
||||
const res = await axios.get('/userinfo', {
|
||||
headers: { ...header.header },
|
||||
});
|
||||
return res.data;
|
||||
} catch (error) {
|
||||
const errorMessage = {
|
||||
account: {
|
||||
_id: '',
|
||||
username: '',
|
||||
email: '',
|
||||
display_name: '',
|
||||
createdAt: '',
|
||||
updatedAt: '',
|
||||
error: error.response?.data,
|
||||
},
|
||||
display_name: '',
|
||||
email: '',
|
||||
groups: [],
|
||||
username: '',
|
||||
};
|
||||
return errorMessage;
|
||||
}
|
||||
},
|
||||
postUserSignOut: async (): Promise<PostUserSignOutAPIPromise> => {
|
||||
try {
|
||||
const res = await axios.post('/account/logout', undefined, {
|
||||
const res = await axios.post('/logout', undefined, {
|
||||
headers: { ...header.header },
|
||||
});
|
||||
return res.data;
|
||||
|
||||
Vendored
+2
-7
@@ -1,7 +1,6 @@
|
||||
import { APIError } from '@Models/GeneralTypes';
|
||||
import {
|
||||
UserTokenInfo,
|
||||
UserSignInInfo,
|
||||
UserAccountInfo,
|
||||
UserOAuthUrl,
|
||||
UserSignOutUrl,
|
||||
} from '@Models/Redux/User/types';
|
||||
@@ -9,10 +8,7 @@ import {
|
||||
export interface GetUserSingleSignInAPIPromise extends UserOAuthUrl {
|
||||
error?: APIError;
|
||||
}
|
||||
export interface PostUserRefreshAPIPromise extends UserTokenInfo {
|
||||
error?: APIError;
|
||||
}
|
||||
export interface GetUserAccountInfoAPIPromise extends UserSignInInfo {
|
||||
export interface GetUserAccountInfoAPIPromise extends UserAccountInfo {
|
||||
error?: APIError;
|
||||
}
|
||||
export interface PostUserSignOutAPIPromise extends UserSignOutUrl {
|
||||
@@ -21,7 +17,6 @@ export interface PostUserSignOutAPIPromise extends UserSignOutUrl {
|
||||
|
||||
export interface UserAPIProps {
|
||||
getUserSSO: (backUrl: string) => Promise<GetUserSingleSignInAPIPromise>;
|
||||
postUserRefreshToken: () => Promise<PostUserRefreshAPIPromise>;
|
||||
getUserAccountInfo: () => Promise<GetUserAccountInfoAPIPromise>;
|
||||
postUserSignOut: () => Promise<PostUserSignOutAPIPromise>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user