After login, modify global axios helper to include this token in all future requests

master
Araozu 2024-05-16 17:16:42 -05:00
parent f182f16fe8
commit 3b30f11d0f
2 changed files with 15 additions and 2 deletions

View File

@ -1,6 +1,6 @@
import { A, useNavigate } from "@solidjs/router";
import { createSignal, onMount, Show } from "solid-js";
import { backend, UserInfo } from "../utils";
import { backend, set_auth_token, UserInfo } from "../utils";
import { Card } from "../components/Card";
import { AxiosError } from "axios";
@ -119,6 +119,7 @@ function UserRegistration(props: {setUserInfo: (u: UserInfo) => void}) {
props.setUserInfo(response.data);
localStorage.setItem(userIdKey, response.data.UserId);
localStorage.setItem(usernameKey, response.data.Username);
set_auth_token(response.data.UserId);
} catch (_e) {
const e = _e as AxiosError<{error: string}>;

View File

@ -1,9 +1,21 @@
import axios from "axios";
export const backend = axios.create({
export let backend = axios.create({
baseURL: `${import.meta.env.VITE_BACKEND_URL}/api`,
headers: {
"Authorization": `Bearer ${localStorage.getItem("UserId") ?? ""}`,
},
});
export function set_auth_token(token: string) {
backend = axios.create({
baseURL: `${import.meta.env.VITE_BACKEND_URL}/api`,
headers: {
"Authorization": `Bearer ${token}`,
},
});
}
export type UserInfo = {
UserId: string,
Username: string,