mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Add real email-based authentication, fix RC account auth to try all 3 login options when it doesn't know #20
This commit is contained in:
1 parent
aea56bf01e
commit
d3bd795a01
7 files changed
+82
-12
No files matched your search
@@ -2,7 +2,7 @@ use rc_core::UserAuthenticator;
|
||||
use rocket::{post, routes, serde::json::Json, http::Status, State};
|
||||
|
||||
#[post("/authenticate/robocraft/game", data = "<body>")]
|
||||
pub async fn email_password_auth(body: Json<libfj::robocraft::EmailUserAuthenticationPayload>, config: &State<crate::common::cli::Config>) -> Result<Json<libfj::robocraft::AuthenticationResponseInfo>, Status> {
|
||||
pub async fn user_password_auth(body: Json<libfj::robocraft::EmailUserAuthenticationPayload>, config: &State<crate::common::cli::Config>) -> Result<Json<libfj::robocraft::AuthenticationResponseInfo>, Status> {
|
||||
log::info!("Authenticating {} user {}", body.target, body.display_name);
|
||||
let payload = libfj::robocraft::TokenPayload {
|
||||
public_id: body.display_name.clone(),
|
||||
@@ -14,7 +14,7 @@ pub async fn email_password_auth(body: Json<libfj::robocraft::EmailUserAuthentic
|
||||
};
|
||||
let user_info = rc_core::persist::user::UserInfo {
|
||||
payload,
|
||||
extra: rc_core::persist::user::ExtraUserInfo::Standalone { password: body.password.clone() },
|
||||
extra: rc_core::persist::user::ExtraUserInfo::Username { password: body.password.clone() },
|
||||
};
|
||||
let response = config.robocraft.account_provider.login(user_info).await
|
||||
.map_err(|e| {
|
||||
@@ -25,7 +25,7 @@ pub async fn email_password_auth(body: Json<libfj::robocraft::EmailUserAuthentic
|
||||
}
|
||||
|
||||
pub fn stage() -> rocket::fairing::AdHoc {
|
||||
rocket::fairing::AdHoc::on_ignite("Robocraft Email/Password", |rocket| async {
|
||||
rocket.mount("/", routes![email_password_auth])
|
||||
rocket::fairing::AdHoc::on_ignite("Robocraft Username/Password", |rocket| async {
|
||||
rocket.mount("/", routes![user_password_auth])
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user