mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-06-25 07:33:49 +08:00
feat(account): add forum login and sidebar account entry
This commit is contained in:
@@ -131,8 +131,14 @@ const toSyncedAppList = (
|
||||
});
|
||||
|
||||
export const setBackendToken = (token: string | null): void => {
|
||||
if (token) backend.defaults.headers.common.Authorization = `Bearer ${token}`;
|
||||
else delete backend.defaults.headers.common.Authorization;
|
||||
const backendWithOptionalDefaults = backend as typeof backend & {
|
||||
defaults?: { headers?: { common?: Record<string, unknown> } };
|
||||
};
|
||||
const commonHeaders = backendWithOptionalDefaults.defaults?.headers?.common;
|
||||
if (!commonHeaders) return;
|
||||
|
||||
if (token) commonHeaders.Authorization = `Bearer ${token}`;
|
||||
else delete commonHeaders.Authorization;
|
||||
};
|
||||
|
||||
export const exchangeFlarumToken = async (payload: {
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import axios from "axios";
|
||||
|
||||
import { FLARUM_BASE_URL } from "@/global/storeConfig";
|
||||
import type { FlarumLoginPayload } from "@/global/typedefinition";
|
||||
|
||||
type FlarumTokenResponse = {
|
||||
token: string;
|
||||
userId: string;
|
||||
};
|
||||
|
||||
const asRecord = (value: unknown): Record<string, unknown> => {
|
||||
if (value && typeof value === "object" && !Array.isArray(value)) {
|
||||
return value as Record<string, unknown>;
|
||||
}
|
||||
return {};
|
||||
};
|
||||
|
||||
export const requestFlarumToken = async (
|
||||
payload: FlarumLoginPayload,
|
||||
): Promise<FlarumTokenResponse> => {
|
||||
const response = await axios.post(`${FLARUM_BASE_URL}/api/token`, payload);
|
||||
const data = asRecord(response.data);
|
||||
|
||||
return {
|
||||
token: String(data.token || ""),
|
||||
userId: String(data.userId || data.user_id || ""),
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user