Modify auth to work with jp

Though idk if it works long term yet
This commit is contained in:
Ethan O'Brien 2024-03-28 11:11:19 -05:00
parent f256c9a1f7
commit 94f84930c2
11 changed files with 53 additions and 64 deletions

View file

@ -2,13 +2,12 @@ use json;
use json::object; use json::object;
use crate::router::global; use crate::router::global;
//use crate::encryption; //use crate::encryption;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
pub fn home(req: HttpRequest, _body: String) -> HttpResponse { pub fn home(req: HttpRequest, _body: String) -> HttpResponse {
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let user = userdata::get_acc(&key);
let user = userdata::get_acc(key);
let id = user["user"]["favorite_master_card_id"].as_i64().unwrap() / 10000; let id = user["user"]["favorite_master_card_id"].as_i64().unwrap() / 10000;

View file

@ -7,9 +7,8 @@ use actix_web::{HttpResponse, HttpRequest};
pub fn friend(_req: HttpRequest, _body: String) -> HttpResponse { pub fn friend(_req: HttpRequest, _body: String) -> HttpResponse {
/*let blank_header = HeaderValue::from_static(""); /*let blank_header = HeaderValue::from_static("");
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let key = global::get_login(req.headers());
let uid = req.headers().get("aoharu-user-id").unwrap_or(&blank_header).to_str().unwrap_or(""); let user = userdata::get_acc(&key, uid);*/
let user = userdata::get_acc(key, uid);*/
let resp = object!{ let resp = object!{
"code": 0, "code": 0,

View file

@ -9,6 +9,12 @@ use std::time::{SystemTime, UNIX_EPOCH};
pub const ASSET_VERSION: &str = "13177023d4b7ad41ff52af4cefba5c55"; pub const ASSET_VERSION: &str = "13177023d4b7ad41ff52af4cefba5c55";
pub const ASSET_HASH: &str = "9fbfeda43a5cbf744ef23c06c22170aa"; pub const ASSET_HASH: &str = "9fbfeda43a5cbf744ef23c06c22170aa";
pub fn get_login(headers: &HeaderMap) -> String {
let blank_header = HeaderValue::from_static("");
let key = headers.get("f19c72ba").unwrap_or(&blank_header).to_str().unwrap_or("");
key.to_string()
}
pub fn timestamp() -> u64 { pub fn timestamp() -> u64 {
let now = SystemTime::now(); let now = SystemTime::now();

View file

@ -1,13 +1,12 @@
use json; use json;
use json::object; use json::object;
use crate::router::global; use crate::router::global;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
pub fn home(req: HttpRequest) -> HttpResponse { pub fn home(req: HttpRequest) -> HttpResponse {
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let user = userdata::get_acc_home(&key);
let user = userdata::get_acc_home(key);
let resp = object!{ let resp = object!{
"code": 0, "code": 0,

View file

@ -2,7 +2,7 @@ use json;
use json::object; use json::object;
use crate::router::global; use crate::router::global;
use crate::encryption; use crate::encryption;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
pub fn retire(_req: HttpRequest, _body: String) -> HttpResponse { pub fn retire(_req: HttpRequest, _body: String) -> HttpResponse {
@ -40,10 +40,9 @@ pub fn start(_req: HttpRequest, _body: String) -> HttpResponse {
pub fn end(req: HttpRequest, body: String) -> HttpResponse { pub fn end(req: HttpRequest, body: String) -> HttpResponse {
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let user2 = userdata::get_acc_home(&key);
let user2 = userdata::get_acc_home(key); let mut user = userdata::get_acc(&key);
let mut user = userdata::get_acc(key);
user["stamina"]["stamina"] = (user["stamina"]["stamina"].as_i32().unwrap() - body["use_lp"].as_i32().unwrap()).into(); user["stamina"]["stamina"] = (user["stamina"]["stamina"].as_i32().unwrap() - body["use_lp"].as_i32().unwrap()).into();
if user["stamina"]["stamina"].as_i32().unwrap() < 0 { if user["stamina"]["stamina"].as_i32().unwrap() < 0 {
@ -51,7 +50,7 @@ pub fn end(req: HttpRequest, body: String) -> HttpResponse {
} }
user["stamina"]["last_updated_time"] = global::timestamp().into(); user["stamina"]["last_updated_time"] = global::timestamp().into();
userdata::save_acc(key, user.clone()); userdata::save_acc(&key, user.clone());
let resp = object!{ let resp = object!{
"code": 0, "code": 0,

View file

@ -2,18 +2,17 @@ use json;
use json::object; use json::object;
use crate::router::global; use crate::router::global;
//use crate::encryption; //use crate::encryption;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
//First time login handler //First time login handler
pub fn dummy(req: HttpRequest, _body: String) -> HttpResponse { pub fn dummy(req: HttpRequest, _body: String) -> HttpResponse {
//let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); //let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let mut user = userdata::get_acc(&key);
let mut user = userdata::get_acc(key);
user["user"]["last_login_time"] = global::timestamp().into(); user["user"]["last_login_time"] = global::timestamp().into();
userdata::save_acc(key, user.clone()); userdata::save_acc(&key, user.clone());
println!("Signin from uid: {}", user["user"]["id"].clone()); println!("Signin from uid: {}", user["user"]["id"].clone());
let resp = object!{ let resp = object!{
@ -28,9 +27,8 @@ pub fn dummy(req: HttpRequest, _body: String) -> HttpResponse {
pub fn bonus(req: HttpRequest, _body: String) -> HttpResponse { pub fn bonus(req: HttpRequest, _body: String) -> HttpResponse {
//let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); //let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let user = userdata::get_acc_home(&key);
let user = userdata::get_acc_home(key);
let resp = object!{ let resp = object!{
"code": 0, "code": 0,

View file

@ -2,7 +2,7 @@ use json;
use json::{array, object, JsonValue}; use json::{array, object, JsonValue};
use crate::router::global; use crate::router::global;
use crate::encryption; use crate::encryption;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
use lazy_static::lazy_static; use lazy_static::lazy_static;
@ -88,10 +88,9 @@ fn get_random_cards(_count: i32) -> JsonValue {
pub fn lottery(req: HttpRequest, body: String) -> HttpResponse { pub fn lottery(req: HttpRequest, body: String) -> HttpResponse {
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
println!("lottery: {}", body); println!("lottery: {}", body);
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let mut user = userdata::get_acc(&key);
let mut user = userdata::get_acc(key); let user2 = userdata::get_acc(&key);
let user2 = userdata::get_acc(key);
let mut cardstogive = get_random_cards(9); let mut cardstogive = get_random_cards(9);
@ -128,7 +127,7 @@ pub fn lottery(req: HttpRequest, body: String) -> HttpResponse {
new_cards.push(to_push).unwrap(); new_cards.push(to_push).unwrap();
} }
userdata::save_acc(key, user.clone()); userdata::save_acc(&key, user.clone());
let mut lottery_list = array![]; let mut lottery_list = array![];
for (_i, data) in cardstogive.members().enumerate() { for (_i, data) in cardstogive.members().enumerate() {

View file

@ -1,13 +1,12 @@
use json; use json;
use json::object; use json::object;
use crate::router::global; use crate::router::global;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
pub fn mission(req: HttpRequest) -> HttpResponse { pub fn mission(req: HttpRequest) -> HttpResponse {
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let user = userdata::get_acc(&key);
let user = userdata::get_acc(key);
let resp = object!{ let resp = object!{
"code": 0, "code": 0,

View file

@ -2,18 +2,17 @@ use json;
use json::object; use json::object;
use crate::router::global; use crate::router::global;
use crate::encryption; use crate::encryption;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
pub fn tutorial(req: HttpRequest, body: String) -> HttpResponse { pub fn tutorial(req: HttpRequest, body: String) -> HttpResponse {
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
let blank_header = HeaderValue::from_static(""); let key = global::get_login(req.headers());
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let mut user = userdata::get_acc(&key);
let mut user = userdata::get_acc(key);
user["tutorial_step"] = body["step"].clone(); user["tutorial_step"] = body["step"].clone();
userdata::save_acc(key, user); userdata::save_acc(&key, user);
let resp = object!{ let resp = object!{
"code": 0, "code": 0,

View file

@ -2,15 +2,14 @@ use json;
use json::{array, object, JsonValue}; use json::{array, object, JsonValue};
use crate::router::global; use crate::router::global;
use crate::encryption; use crate::encryption;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use actix_web::{HttpResponse, HttpRequest};
use crate::router::userdata; use crate::router::userdata;
pub fn deck(req: HttpRequest, body: String) -> HttpResponse { pub fn deck(req: HttpRequest, body: String) -> HttpResponse {
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
let blank_header = HeaderValue::from_static("");
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let key = global::get_login(req.headers());
let mut user = userdata::get_acc(key); let mut user = userdata::get_acc(&key);
for (i, data) in user["deck_list"].members().enumerate() { for (i, data) in user["deck_list"].members().enumerate() {
if data["slot"].to_string() == body["slot"].to_string() { if data["slot"].to_string() == body["slot"].to_string() {
@ -18,7 +17,7 @@ pub fn deck(req: HttpRequest, body: String) -> HttpResponse {
break; break;
} }
} }
userdata::save_acc(key, user.clone()); userdata::save_acc(&key, user.clone());
let resp = object!{ let resp = object!{
"code": 0, "code": 0,
@ -36,10 +35,9 @@ pub fn deck(req: HttpRequest, body: String) -> HttpResponse {
} }
pub fn user(req: HttpRequest) -> HttpResponse { pub fn user(req: HttpRequest) -> HttpResponse {
let blank_header = HeaderValue::from_static("");
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let key = global::get_login(req.headers());
let user = userdata::get_acc(key); let user = userdata::get_acc(&key);
let resp = object!{ let resp = object!{
"code": 0, "code": 0,
@ -51,16 +49,15 @@ pub fn user(req: HttpRequest) -> HttpResponse {
pub fn user_post(req: HttpRequest, body: String) -> HttpResponse { pub fn user_post(req: HttpRequest, body: String) -> HttpResponse {
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
let blank_header = HeaderValue::from_static("");
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let key = global::get_login(req.headers());
let mut user = userdata::get_acc(key); let mut user = userdata::get_acc(&key);
let user_2 = userdata::get_acc_home(key); let user_2 = userdata::get_acc_home(&key);
user["user"]["name"] = body["name"].clone(); user["user"]["name"] = body["name"].clone();
user["user"]["friend_request_disabled"] = body["friend_request_disabled"].clone(); user["user"]["friend_request_disabled"] = body["friend_request_disabled"].clone();
userdata::save_acc(key, user.clone()); userdata::save_acc(&key, user.clone());
let resp = object!{ let resp = object!{
"code": 0, "code": 0,
@ -75,10 +72,9 @@ pub fn user_post(req: HttpRequest, body: String) -> HttpResponse {
pub fn initialize(req: HttpRequest, body: String) -> HttpResponse { pub fn initialize(req: HttpRequest, body: String) -> HttpResponse {
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
let blank_header = HeaderValue::from_static("");
let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let key = global::get_login(req.headers());
let mut user = userdata::get_acc(key); let mut user = userdata::get_acc(&key);
let ur = user["card_list"][user["card_list"].len() - 1]["id"].clone(); let ur = user["card_list"][user["card_list"].len() - 1]["id"].clone();
let id = ur.as_i32().unwrap(); //todo let id = ur.as_i32().unwrap(); //todo
@ -121,7 +117,7 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse {
//todo - should the chosen character be in the team twice? //todo - should the chosen character be in the team twice?
user["deck_list"][0]["main_card_ids"][4] = ur; user["deck_list"][0]["main_card_ids"][4] = ur;
userdata::save_acc(key, user.clone()); userdata::save_acc(&key, user.clone());
let resp = object!{ let resp = object!{
"code": 0, "code": 0,

View file

@ -107,21 +107,17 @@ fn create_acc(conn: &Connection, uid: i64, login: &str) {
create_token_store(conn); create_token_store(conn);
let mut tokens = get_tokens(conn); let mut tokens = get_tokens(conn);
let parts: Vec<&str> = login.split('-').collect(); tokens[0][login] = uid.into();
let token = parts[1..parts.len() - 1].join("-");
tokens[0][token] = uid.into();
store_data(conn, "tokens", tokens); store_data(conn, "tokens", tokens);
} }
fn get_uid(conn: &Connection, uid: &str) -> i64 { fn get_uid(conn: &Connection, uid: &str) -> i64 {
create_token_store(conn); create_token_store(conn);
let parts: Vec<&str> = uid.split('-').collect();
let token = parts[1..parts.len() - 1].join("-");
let tokens = get_tokens(conn); let tokens = get_tokens(conn);
if tokens[0][token.clone()].is_null() { if tokens[0][uid].is_null() {
return 0; return 0;
} }
return tokens[0][token].as_i64().unwrap(); return tokens[0][uid].as_i64().unwrap();
} }
fn get_data(a6573cbe: &str) -> JsonValue { fn get_data(a6573cbe: &str) -> JsonValue {