feat: checkInviteTokenValid
This commit is contained in:
+30
-23
@@ -1,27 +1,34 @@
|
|||||||
import { createApi } from "@reduxjs/toolkit/query/react";
|
import { createApi } from '@reduxjs/toolkit/query/react';
|
||||||
import baseQuery from "./base.query";
|
import baseQuery from './base.query';
|
||||||
export const authApi = createApi({
|
export const authApi = createApi({
|
||||||
reducerPath: "auth",
|
reducerPath: 'auth',
|
||||||
baseQuery,
|
baseQuery,
|
||||||
endpoints: (builder) => ({
|
endpoints: (builder) => ({
|
||||||
login: builder.mutation({
|
login: builder.mutation({
|
||||||
query: (credentials) => ({
|
query: (credentials) => ({
|
||||||
url: "token/login",
|
url: 'token/login',
|
||||||
method: "POST",
|
method: 'POST',
|
||||||
body: { credential: credentials, device: "web", device_token: "test" },
|
body: { credential: credentials, device: 'web', device_token: 'test' }
|
||||||
}),
|
})
|
||||||
// transformResponse: (resp) => {
|
// transformResponse: (resp) => {
|
||||||
// console.log("resp", resp);
|
// console.log("resp", resp);
|
||||||
// if (resp.status == 401) {
|
// if (resp.status == 401) {
|
||||||
// resp.msg = "username or password incorrect";
|
// resp.msg = "username or password incorrect";
|
||||||
// }
|
// }
|
||||||
// return resp;
|
// return resp;
|
||||||
// },
|
// },
|
||||||
}),
|
|
||||||
logout: builder.query({
|
|
||||||
query: () => ({ url: `token/logout` }),
|
|
||||||
}),
|
|
||||||
}),
|
}),
|
||||||
|
checkInviteTokenValid: builder.mutation({
|
||||||
|
query: (token) => ({
|
||||||
|
url: 'user/check_invite_magic_token',
|
||||||
|
method: 'POST',
|
||||||
|
body: { magic_token: token }
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
logout: builder.query({
|
||||||
|
query: () => ({ url: `token/logout` })
|
||||||
|
})
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
export const { useLoginMutation, useLazyLogoutQuery } = authApi;
|
export const { useLoginMutation, useLazyLogoutQuery, useCheckInviteTokenValidMutation } = authApi;
|
||||||
|
|||||||
@@ -1,59 +1,59 @@
|
|||||||
import { fetchBaseQuery } from "@reduxjs/toolkit/query";
|
import { fetchBaseQuery } from '@reduxjs/toolkit/query';
|
||||||
import toast from "react-hot-toast";
|
import toast from 'react-hot-toast';
|
||||||
import BASE_URL, { tokenHeader } from "../config";
|
import BASE_URL, { tokenHeader } from '../config';
|
||||||
const whiteList = ["login"];
|
const whiteList = ['login', 'checkInviteTokenValid'];
|
||||||
const baseQuery = fetchBaseQuery({
|
const baseQuery = fetchBaseQuery({
|
||||||
baseUrl: BASE_URL,
|
baseUrl: BASE_URL,
|
||||||
prepareHeaders: (headers, { getState, endpoint }) => {
|
prepareHeaders: (headers, { getState, endpoint }) => {
|
||||||
console.log("req", endpoint);
|
console.log('req', endpoint);
|
||||||
const { token } = getState().authData;
|
const { token } = getState().authData;
|
||||||
if (token && !whiteList.includes(endpoint)) {
|
if (token && !whiteList.includes(endpoint)) {
|
||||||
headers.set(tokenHeader, token);
|
headers.set(tokenHeader, token);
|
||||||
}
|
}
|
||||||
// 发送channel msg (临时举措)
|
// 发送channel msg (临时举措)
|
||||||
// if (endpoint == "sendChannelMsg") {
|
// if (endpoint == "sendChannelMsg") {
|
||||||
// headers.set("Content-Type", "text/plain");
|
// headers.set("Content-Type", "text/plain");
|
||||||
// }
|
// }
|
||||||
return headers;
|
return headers;
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
const baseQueryWithReauth = async (args, api, extraOptions) => {
|
const baseQueryWithReauth = async (args, api, extraOptions) => {
|
||||||
let result = await baseQuery(args, api, extraOptions);
|
let result = await baseQuery(args, api, extraOptions);
|
||||||
if (result.error) {
|
if (result.error) {
|
||||||
console.log("api error", result.error);
|
console.log('api error', result.error);
|
||||||
switch (result.error.originalStatus) {
|
switch (result.error.originalStatus) {
|
||||||
case 404:
|
case 404:
|
||||||
{
|
{
|
||||||
toast.error("Request Not Found");
|
toast.error('Request Not Found');
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 500:
|
|
||||||
{
|
|
||||||
toast.error(result.error.data || "server error");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 401:
|
|
||||||
{
|
|
||||||
toast.error("token expired, please login again");
|
|
||||||
// try to get a new token with refreshToken
|
|
||||||
// const refreshResult = await baseQuery('/refreshToken', api, extraOptions);
|
|
||||||
// if (refreshResult.data) {
|
|
||||||
// // store the new token
|
|
||||||
// api.dispatch(tokenReceived(refreshResult.data));
|
|
||||||
// // retry the initial query
|
|
||||||
// result = await baseQuery(args, api, extraOptions);
|
|
||||||
// } else {
|
|
||||||
// api.dispatch(loggedOut());
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case 500:
|
||||||
|
{
|
||||||
|
toast.error(result.error.data || 'server error');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 401:
|
||||||
|
{
|
||||||
|
toast.error('token expired, please login again');
|
||||||
|
// try to get a new token with refreshToken
|
||||||
|
// const refreshResult = await baseQuery('/refreshToken', api, extraOptions);
|
||||||
|
// if (refreshResult.data) {
|
||||||
|
// // store the new token
|
||||||
|
// api.dispatch(tokenReceived(refreshResult.data));
|
||||||
|
// // retry the initial query
|
||||||
|
// result = await baseQuery(args, api, extraOptions);
|
||||||
|
// } else {
|
||||||
|
// api.dispatch(loggedOut());
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return result;
|
}
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default baseQueryWithReauth;
|
export default baseQueryWithReauth;
|
||||||
|
|||||||
Reference in New Issue
Block a user