feat: start implementing device name generation in the backend

This commit is contained in:
Twig 2025-07-14 00:36:15 +02:00
parent 3647086adb
commit 8656115dc9
No known key found for this signature in database
7 changed files with 1034 additions and 22 deletions

View file

@ -12,17 +12,13 @@ use uuid::Uuid;
use super::Response;
use crate::{
Data,
error::Error,
objects::Member,
schema::{
error::Error, objects::Member, schema::{
access_tokens::{self, dsl as adsl},
refresh_tokens::{self, dsl as rdsl},
users::{self, dsl as udsl},
},
utils::{
EMAIL_REGEX, PASSWORD_REGEX, USERNAME_REGEX, generate_token, new_refresh_token_cookie,
},
}, utils::{
generate_token, new_refresh_token_cookie, EMAIL_REGEX, PASSWORD_REGEX, USERNAME_REGEX
}, generate_device_name::generate_device_name, Data
};
#[derive(Deserialize)]
@ -30,7 +26,6 @@ struct AccountInformation {
identifier: String,
email: String,
password: String,
device_name: String,
}
#[derive(Serialize)]
@ -125,12 +120,14 @@ pub async fn res(
let current_time = SystemTime::now().duration_since(UNIX_EPOCH)?.as_secs() as i64;
let device_name = generate_device_name();
insert_into(refresh_tokens::table)
.values((
rdsl::token.eq(&refresh_token),
rdsl::uuid.eq(uuid),
.values((
rdsl::token.eq(&refresh_token),
rdsl::uuid.eq(uuid),
rdsl::created_at.eq(current_time),
rdsl::device_name.eq(&account_information.device_name),
rdsl::device_name.eq(&device_name),
))
.execute(&mut conn)
.await?;
@ -151,7 +148,7 @@ pub async fn res(
return Ok(HttpResponse::Ok()
.cookie(new_refresh_token_cookie(&data.config, refresh_token))
.json(Response { access_token }));
.json(Response { access_token, device_name }));
}
Ok(HttpResponse::InternalServerError().finish())