mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Simplify login data struct, add experimental login flags
This commit is contained in:
@@ -3,29 +3,20 @@ use actix_web::{post, web::{Data, Json}};
|
||||
|
||||
#[post("/authenticate/email/game")]
|
||||
pub async fn email_password_auth(body: Json<libfj::robocraft::EmailUserAuthenticationPayload>, config: Data<super::RcConfig>) -> Result<Json<libfj::robocraft::AuthenticationResponseInfo>, super::ErrorTy> {
|
||||
if body.display_name.is_none() {
|
||||
if body.email_address.is_empty() {
|
||||
return Err(super::ErrorTy::from_err(oj_rc_core::persist::user::AuthError {
|
||||
message: "Missing display_name".to_owned(),
|
||||
message: "Missing email_address".to_owned(),
|
||||
code: oj_rc_core::data::error_codes::AuthErrorCode::BadCredentials,
|
||||
}));
|
||||
}
|
||||
let display_name = body.display_name.clone().unwrap();
|
||||
log::info!("Authenticating {} email user {}", body.target, display_name);
|
||||
let payload = libfj::robocraft::TokenPayload {
|
||||
public_id: display_name.clone(),
|
||||
display_name: display_name.clone(),
|
||||
robocraft_name: display_name.clone(),
|
||||
email_address: body.email_address.clone(),
|
||||
email_verified: true,
|
||||
flags: Vec::new(),
|
||||
};
|
||||
let user_info = oj_rc_core::persist::user::UserInfo {
|
||||
payload,
|
||||
extra: oj_rc_core::persist::user::ExtraUserInfo::Email { password: body.password.clone() },
|
||||
log::info!("Authenticating {} email user {}", body.target, body.email_address);
|
||||
let user_info = oj_rc_core::persist::user::UserAuthInfo::Email {
|
||||
email: body.email_address.clone(),
|
||||
password: body.password.clone()
|
||||
};
|
||||
let response = config.account_provider.login(user_info).await
|
||||
.map_err(|e| {
|
||||
log::error!("Failed to authenticate {} user {}: {}", body.target, display_name, e.message);
|
||||
log::error!("Failed to authenticate {} email user {}: {}", body.target, body.email_address, e.message);
|
||||
super::ErrorTy::from_err(e)
|
||||
})?;
|
||||
Ok(Json(response.response))
|
||||
|
||||
@@ -44,18 +44,7 @@ pub async fn steam_auth(body: Json<libfj::robocraft::SteamAuthenticationPayload>
|
||||
code: oj_rc_core::data::error_codes::AuthErrorCode::BadCredentials,
|
||||
}))?;
|
||||
log::info!("Authenticating {} steam user {}", body.target, steam_id);
|
||||
let payload = libfj::robocraft::TokenPayload {
|
||||
public_id: steam_id.to_string(),
|
||||
display_name: steam_id.to_string(),
|
||||
robocraft_name: steam_id.to_string(),
|
||||
email_address: format!("{}.rc.steam@ngram.ca", steam_id),
|
||||
email_verified: true,
|
||||
flags: Vec::new(),
|
||||
};
|
||||
let user_info = oj_rc_core::persist::user::UserInfo {
|
||||
payload,
|
||||
extra: oj_rc_core::persist::user::ExtraUserInfo::Steam { id: steam_id },
|
||||
};
|
||||
let user_info = oj_rc_core::persist::user::UserAuthInfo::Steam { id: steam_id };
|
||||
let response = config.account_provider.login(user_info).await
|
||||
.map_err(|e| {
|
||||
log::error!("Failed to authenticate {} steam user {}: {}", body.target, steam_id, e.message);
|
||||
|
||||
@@ -11,17 +11,9 @@ pub async fn user_password_auth(body: Json<libfj::robocraft::EmailUserAuthentica
|
||||
}
|
||||
let display_name = body.display_name.clone().unwrap();
|
||||
log::info!("Authenticating {} user {}", body.target, display_name);
|
||||
let payload = libfj::robocraft::TokenPayload {
|
||||
public_id: display_name.clone(),
|
||||
display_name: display_name.clone(),
|
||||
robocraft_name: display_name.clone(),
|
||||
email_address: body.email_address.clone(),
|
||||
email_verified: true,
|
||||
flags: Vec::new(),
|
||||
};
|
||||
let user_info = oj_rc_core::persist::user::UserInfo {
|
||||
payload,
|
||||
extra: oj_rc_core::persist::user::ExtraUserInfo::Username { password: body.password.clone() },
|
||||
let user_info = oj_rc_core::persist::user::UserAuthInfo::Username {
|
||||
username: display_name.clone(),
|
||||
password: body.password.clone(),
|
||||
};
|
||||
let response = config.account_provider.login(user_info).await
|
||||
.map_err(|e| {
|
||||
|
||||
Reference in New Issue
Block a user