add set cookie

This commit is contained in:
afazio1
2024-04-11 02:34:32 -04:00
parent 5d0f258e5f
commit 04d8c8504c
4 changed files with 54 additions and 3 deletions

View File

@@ -18,7 +18,9 @@ class LoginView(APIView):
user = authenticate(username=username, password=password)
if user:
token, _ = Token.objects.get_or_create(user=user)
return Response({"token": token.key})
response = Response({"token": token.key}, status=status.HTTP_200_OK)
response.set_cookie("token", token.key)
return response
else:
return Response(
{"error": "Invalid credentials"},

View File

@@ -134,3 +134,7 @@ STATIC_URL = "static/"
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
AUTH_USER_MODEL = "api.PeerUser"
CORS_ALLOW_ALL_ORIGINS = True
# CORS_ALLOWED_ORIGINS = [
# "http://localhost:5173"
# ]
CORS_ALLOW_CREDENTIALS = True

View File

@@ -1,9 +1,28 @@
import { Link } from "react-router-dom"
import "../styles/Login.css"
import { FormEvent } from "react";
export default function Login() {
function handleSubmit(e: FormEvent) {
e.preventDefault();
const formData = new FormData(e.target as HTMLFormElement);
const username = formData.get('username');
const password = formData.get('password');
fetch('http://localhost:8000/api/login/', {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ username, password }),
})
.catch((error) => {
console.error('Error:', error);
});
}
return (
<main>
<form className="login-container">
<form className="login-container" onSubmit={handleSubmit}>
<h1>Login</h1>
<div className="form-input">
<label htmlFor="username">Username</label>

View File

@@ -1,10 +1,36 @@
import { Link } from "react-router-dom";
import "../styles/Login.css"
import { FormEvent } from "react";
export default function Signup() {
function handleSubmit(e: FormEvent) {
e.preventDefault();
const formData = new FormData(e.target as HTMLFormElement);
const email = formData.get('email');
const username = formData.get('username');
const password = formData.get('password');
fetch('http://localhost:8000/api/signup/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ email, username, password }),
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
}
return (
<main>
<form className="login-container">
<form className="login-container" onSubmit={handleSubmit}>
<h1>Sign Up</h1>
<div className="form-input">
<label htmlFor="email">Email</label>
<input type="email" name="email" id="email" />
</div>
<div className="form-input">
<label htmlFor="username">Username</label>
<input type="text" name="username" id="username" />