redis storage for captcha mech

This commit is contained in:
realaravinth
2021-06-11 19:31:03 +05:30
parent 17ae532162
commit f5624947b9
29 changed files with 604 additions and 210 deletions

View File

@@ -20,7 +20,7 @@ use actix_web::{web, HttpResponse, Responder};
use super::auth::Password;
use crate::errors::*;
use crate::Data;
use crate::AppData;
#[my_codegen::post(
path = "crate::V1_API_ROUTES.account.delete",
@@ -29,7 +29,7 @@ use crate::Data;
async fn delete_account(
id: Identity,
payload: web::Json<Password>,
data: web::Data<Data>,
data: AppData,
) -> ServiceResult<impl Responder> {
use argon2_creds::Config;
use sqlx::Error::RowNotFound;

View File

@@ -22,7 +22,7 @@ use serde::{Deserialize, Serialize};
use super::{AccountCheckPayload, AccountCheckResp};
use crate::errors::*;
use crate::Data;
use crate::AppData;
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Email {
@@ -32,7 +32,7 @@ pub struct Email {
#[my_codegen::post(path = "crate::V1_API_ROUTES.account.email_exists")]
pub async fn email_exists(
payload: web::Json<AccountCheckPayload>,
data: web::Data<Data>,
data: AppData,
) -> ServiceResult<impl Responder> {
let res = sqlx::query!(
"SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE email = $1)",
@@ -60,7 +60,7 @@ pub async fn email_exists(
async fn set_email(
id: Identity,
payload: web::Json<Email>,
data: web::Data<Data>,
data: AppData,
) -> ServiceResult<impl Responder> {
let username = id.identity().unwrap();
@@ -91,20 +91,4 @@ async fn set_email(
pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
cfg.service(email_exists);
cfg.service(set_email);
// use crate::define_resource;
// use crate::V1_API_ROUTES;
//
// define_resource!(
// cfg,
// V1_API_ROUTES.account.email_exists,
// Methods::Post,
// email_exists
// );
//
// define_resource!(
// cfg,
// V1_API_ROUTES.account.update_email,
// Methods::Post,
// set_email
// );
}

View File

@@ -17,12 +17,12 @@
use std::borrow::Cow;
use actix_identity::Identity;
use actix_web::{web, HttpResponse, Responder};
use actix_web::{HttpResponse, Responder};
use serde::{Deserialize, Serialize};
use crate::api::v1::mcaptcha::get_random;
use crate::errors::*;
use crate::Data;
use crate::AppData;
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Secret {
@@ -33,10 +33,7 @@ pub struct Secret {
path = "crate::V1_API_ROUTES.account.get_secret",
wrap = "crate::CheckLogin"
)]
async fn get_secret(
id: Identity,
data: web::Data<Data>,
) -> ServiceResult<impl Responder> {
async fn get_secret(id: Identity, data: AppData) -> ServiceResult<impl Responder> {
let username = id.identity().unwrap();
let secret = sqlx::query_as!(
@@ -56,7 +53,7 @@ async fn get_secret(
)]
async fn update_user_secret(
id: Identity,
data: web::Data<Data>,
data: AppData,
) -> ServiceResult<impl Responder> {
let username = id.identity().unwrap();

View File

@@ -18,12 +18,12 @@ use actix_web::{web, HttpResponse, Responder};
use super::{AccountCheckPayload, AccountCheckResp};
use crate::errors::*;
use crate::Data;
use crate::AppData;
#[my_codegen::post(path = "crate::V1_API_ROUTES.account.username_exists")]
async fn username_exists(
payload: web::Json<AccountCheckPayload>,
data: web::Data<Data>,
data: AppData,
) -> ServiceResult<impl Responder> {
let res = sqlx::query!(
"SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE name = $1)",