feat(auth): Enhance Google OAuth service with CSRF protection and validation logic

feat(auth): Add error handling for authentication and validation errors
feat(auth): Implement default role assignment for new users in Google OAuth flow
feat(utils): Introduce CSRF token generation and validation utilities
fix(dependencies): Update Cargo.toml to include base64 and sha2 dependencies
This commit is contained in:
MythEclipse
2025-08-12 00:32:59 +07:00
parent 1e25a5b496
commit 0ba04abee9
8 changed files with 542 additions and 373 deletions
+12
View File
@@ -13,6 +13,10 @@ pub mod error {
Anyhow(#[from] anyhow::Error),
#[error("HTTP status code error: {0}")]
StatusCode(StatusCode),
#[error("authentication error: {0}")]
Auth(String),
#[error("validation error: {0}")]
Validation(String),
}
impl IntoResponse for Error {
@@ -27,6 +31,14 @@ pub mod error {
format!("Internal server error: {detail}"),
),
Error::StatusCode(s) => (s, format!("HTTP error: {}", s)),
Error::Auth(detail) => (
StatusCode::UNAUTHORIZED,
format!("Authentication error: {detail}"),
),
Error::Validation(detail) => (
StatusCode::BAD_REQUEST,
format!("Validation error: {detail}"),
),
};
(status, Json(error_message)).into_response()
}