mirror of
https://github.com/Drop-OSS/drop-app.git
synced 2025-11-14 16:51:18 +10:00
fix(sign on): add message about nonce expiration
This commit is contained in:
@ -13,7 +13,7 @@ use url::Url;
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
db::{DatabaseAuth, DatabaseImpls},
|
db::{DatabaseAuth, DatabaseImpls},
|
||||||
remote::RemoteAccessError,
|
remote::{DropServerError, RemoteAccessError},
|
||||||
AppState, AppStatus, User, DB,
|
AppState, AppStatus, User, DB,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -78,7 +78,13 @@ pub fn fetch_user() -> Result<User, RemoteAccessError> {
|
|||||||
.send()?;
|
.send()?;
|
||||||
|
|
||||||
if response.status() != 200 {
|
if response.status() != 200 {
|
||||||
info!("Could not fetch user: {}", response.text().unwrap());
|
let data = response.json::<DropServerError>()?;
|
||||||
|
info!("Could not fetch user: {}", data.status_message);
|
||||||
|
|
||||||
|
if data.status_message == "Nonce expired" {
|
||||||
|
return Err(RemoteAccessError::OutOfSync);
|
||||||
|
}
|
||||||
|
|
||||||
return Err(RemoteAccessError::InvalidCodeError(0));
|
return Err(RemoteAccessError::InvalidCodeError(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ pub enum RemoteAccessError {
|
|||||||
InvalidResponse,
|
InvalidResponse,
|
||||||
InvalidRedirect,
|
InvalidRedirect,
|
||||||
ManifestDownloadFailed(StatusCode, String),
|
ManifestDownloadFailed(StatusCode, String),
|
||||||
|
OutOfSync,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Display for RemoteAccessError {
|
impl Display for RemoteAccessError {
|
||||||
@ -51,6 +52,7 @@ impl Display for RemoteAccessError {
|
|||||||
"Failed to download game manifest: {} {}",
|
"Failed to download game manifest: {} {}",
|
||||||
status, response
|
status, response
|
||||||
),
|
),
|
||||||
|
RemoteAccessError::OutOfSync => write!(f, "Server's and client's time are out of sync. Please ensure they are within at least 30 seconds of each other."),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,6 +75,15 @@ impl From<u16> for RemoteAccessError {
|
|||||||
|
|
||||||
impl std::error::Error for RemoteAccessError {}
|
impl std::error::Error for RemoteAccessError {}
|
||||||
|
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct DropServerError {
|
||||||
|
pub status_code: usize,
|
||||||
|
pub status_message: String,
|
||||||
|
pub message: String,
|
||||||
|
pub url: String,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
struct DropHealthcheck {
|
struct DropHealthcheck {
|
||||||
|
|||||||
Reference in New Issue
Block a user