Files
pi-ku/backend/users/utils.py
2026-04-22 18:53:23 +05:30

39 lines
1.4 KiB
Python

from django.conf import settings
from django.contrib.auth.tokens import default_token_generator
from django.core.mail import send_mail
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode
def send_activation_email(user):
token = default_token_generator.make_token(user)
uid = urlsafe_base64_encode(force_bytes(user.public_id))
activation_url = f"{settings.FRONTEND_URLS[0]}/activate/{uid}/{token}"
subject = "Activate Your Piku Account"
message = f"""Hi {user.full_name},
Welcome to Pi Ku.
Please click the link below to activate your account:
>> {activation_url}
If you did not create this account, please ignore this email."""
send_mail(subject, message, settings.FROM_EMAIL, [user.email], fail_silently=False)
return True
def set_response_cookies(response, refresh_token):
_response = response
if "refresh" in _response.data:
del _response.data["refresh"] # remove refresh token from response body
_response.set_cookie(
key=settings.AUTH_COOKIE["NAME"],
value=refresh_token,
max_age=settings.SIMPLE_JWT["REFRESH_TOKEN_LIFETIME"].total_seconds(),
httponly=settings.AUTH_COOKIE["HTTPONLY"],
secure=settings.AUTH_COOKIE["SECURE"],
samesite=settings.AUTH_COOKIE["SAMESITE"],
domain=settings.AUTH_COOKIE["DOMAIN"],
)
return _response