Implement Auth provide user info

This commit is contained in:
Takeshi Kimata
2024-05-19 11:14:04 +09:00
parent 0a783bddfd
commit 3d141cf05b
16 changed files with 151 additions and 7 deletions

View File

@@ -0,0 +1,63 @@
import { UserType } from "@/types/user";
import Config from "@/config/config";
const apiServer = Config.apiServer;
async function signUp(newUser: UserType) {
const fetchOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(newUser),
};
const url = `${apiServer}/auth/signup`;
try {
const response = await fetch(url, fetchOptions);
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
const accessToken = await response.json();
storeToken(accessToken);
return accessToken;
} catch (error: any) {
console.error("Error sign up:", error);
throw error;
}
}
async function signIn(signInUser: UserType) {
const fetchOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(signInUser),
};
const url = `${apiServer}/auth/signin`;
try {
const response = await fetch(url, fetchOptions);
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
const accessToken = await response.json();
storeToken(accessToken);
return accessToken;
} catch (error: any) {
console.error("Error sign in:", error);
throw error;
}
}
function storeToken(accessToken: Object) {
localStorage.setItem("testplat-auth-token", JSON.stringify(accessToken));
}
function signOut() {
localStorage.removeItem("testplat-auth-token");
}
export { signUp, signIn, signOut };