feat: try reading the device name from the table
This commit is contained in:
parent
8656115dc9
commit
e7bc53f858
2 changed files with 9 additions and 18 deletions
|
@ -5,13 +5,10 @@ use log::error;
|
||||||
use std::time::{SystemTime, UNIX_EPOCH};
|
use std::time::{SystemTime, UNIX_EPOCH};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
Data,
|
error::Error, schema::{
|
||||||
error::Error,
|
|
||||||
schema::{
|
|
||||||
access_tokens::{self, dsl},
|
access_tokens::{self, dsl},
|
||||||
refresh_tokens::{self, dsl as rdsl},
|
refresh_tokens::{self, device_name, dsl as rdsl},
|
||||||
},
|
}, utils::{generate_token, new_refresh_token_cookie}, Data
|
||||||
utils::{generate_token, new_refresh_token_cookie},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::Response;
|
use super::Response;
|
||||||
|
@ -53,6 +50,7 @@ pub async fn res(req: HttpRequest, data: web::Data<Data>) -> Result<HttpResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
let current_time = SystemTime::now().duration_since(UNIX_EPOCH)?.as_secs() as i64;
|
let current_time = SystemTime::now().duration_since(UNIX_EPOCH)?.as_secs() as i64;
|
||||||
|
let existing_device_name: String;
|
||||||
|
|
||||||
if lifetime > 1987200 {
|
if lifetime > 1987200 {
|
||||||
let new_refresh_token = generate_token::<32>()?;
|
let new_refresh_token = generate_token::<32>()?;
|
||||||
|
@ -63,11 +61,13 @@ pub async fn res(req: HttpRequest, data: web::Data<Data>) -> Result<HttpResponse
|
||||||
rdsl::token.eq(&new_refresh_token),
|
rdsl::token.eq(&new_refresh_token),
|
||||||
rdsl::created_at.eq(current_time),
|
rdsl::created_at.eq(current_time),
|
||||||
))
|
))
|
||||||
.execute(&mut conn)
|
.returning(rdsl::device_name)
|
||||||
|
.get_result::<String>(&mut conn)
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(_) => {
|
Ok(device_name) => {
|
||||||
refresh_token = new_refresh_token;
|
refresh_token = new_refresh_token;
|
||||||
|
existing_device_name = device_name.to_string();
|
||||||
}
|
}
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
error!("{error}");
|
error!("{error}");
|
||||||
|
@ -77,15 +77,6 @@ pub async fn res(req: HttpRequest, data: web::Data<Data>) -> Result<HttpResponse
|
||||||
|
|
||||||
let access_token = generate_token::<16>()?;
|
let access_token = generate_token::<16>()?;
|
||||||
|
|
||||||
let device_name: String;
|
|
||||||
|
|
||||||
// fix me tomorrow
|
|
||||||
// let devices: Vec<Device> = dsl::refresh_tokens
|
|
||||||
// .filter(dsl::uuid.eq(uuid))
|
|
||||||
// .select(Device::as_select())
|
|
||||||
// .get_results(&mut conn)
|
|
||||||
// .await?;
|
|
||||||
|
|
||||||
update(access_tokens::table)
|
update(access_tokens::table)
|
||||||
.filter(dsl::refresh_token.eq(&refresh_token))
|
.filter(dsl::refresh_token.eq(&refresh_token))
|
||||||
.set((
|
.set((
|
||||||
|
@ -97,7 +88,7 @@ pub async fn res(req: HttpRequest, data: web::Data<Data>) -> Result<HttpResponse
|
||||||
|
|
||||||
return Ok(HttpResponse::Ok()
|
return Ok(HttpResponse::Ok()
|
||||||
.cookie(new_refresh_token_cookie(&data.config, refresh_token))
|
.cookie(new_refresh_token_cookie(&data.config, refresh_token))
|
||||||
.json(Response { access_token, device_name }));
|
.json(Response { access_token, existing_device_name }));
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh_token_cookie.make_removal();
|
refresh_token_cookie.make_removal();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue