From bedb5ea9743974851dfb2dd91467df5a568f30b2 Mon Sep 17 00:00:00 2001 From: Erin Nova Date: Sun, 18 Jul 2021 10:17:29 -0400 Subject: [PATCH] Add basic token validation --- src/chat.rs | 35 ++++++++++++++++++++++++++++------- src/message.rs | 1 + 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/chat.rs b/src/chat.rs index 05d23c7..5ee6e48 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -8,8 +8,33 @@ use uuid::Uuid; use crate::user::User; // Check if user can create the message, and then create more info about the message -fn create_message(message: Json, file: &str, token: &str) { +fn create_message(message: Json, file: &str) -> JsonValue { // check if token is correct for name given + let users: Vec = read_json(); // create vector out of users in json file + + for i in &users { + // loop through elements + if i.name == message.name.to_lowercase() { // if it finds the user in the file + if i.session_token == message.token { // if token matches + info!("user exists and given token matches"); + return json!({ + "status": "ok", + "reason": "token matches" + }) + } else { + warn!("token does not match!"); + return json!({ + "status": "fail", + "reason": "token does not match" + }) + }; + }; + }; + json!({ + "status": "fail", + "reason": "user not found" + }) +/* // create full message object // append message to file @@ -25,15 +50,11 @@ fn create_message(message: Json, file: &str, token: &str) { body: message.body.to_string(), created_at: Utc.ymd(2005, 7, 8).and_hms(9, 10, 11), }; - println!("{:?}", message_obj); + println!("{:?}", message_obj);*/ } // Receive a basic message #[post("/api/message/send", format = "json", data = "")] pub fn send_message(message: Json>) -> JsonValue { - create_message(message, "messages.json", "token"); - json!({ - "status": "ok", - "reason": "" - }) + create_message(message, "messages.json") } diff --git a/src/message.rs b/src/message.rs index ae6502e..c6f0d9d 100644 --- a/src/message.rs +++ b/src/message.rs @@ -8,6 +8,7 @@ pub struct MessageInput<'r> { pub name: &'r str, pub body: &'r str, pub date: &'r str, + pub token: &'r str, } #[derive(Debug)]