Create and store reset password token

O01eg
Apr 13, 2022, 9:55 AM
I6SOPEQFWSSOZL7SWTQQK7OXEYZX62WVCLAMCKHFWGBA3OYALSJAC

Dependencies

  • [2] TRBYOQBI Check CSRF and user existence
  • [*] HZDCKIXQ Use constants for templates
  • [*] WLWTNO4Y Create form to request game password change link

Change contents

  • edit in src/pages/query_reset_game_pwd.rs at line 96
    [2.2115]
    [5.1696]
    let dbclient_rw = match data.pool_rw.get().await {
    Ok(c) => c,
    Err(e) => {
    log::error!("Pool RW error {}", e);
    return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());
    }
    };
    let stmt = match dbclient_rw
    .prepare("insert into auth.reset_tokens values ($1, $2, NULL, NOW(), NULL);")
    .await
    {
    Ok(stmt) => stmt,
    Err(e) => {
    log::error!("Pool RW statement error {}", e);
    return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());
    }
    };
    let token = Uuid::new_v4();
    let inserted = match dbclient_rw.execute(&stmt, &[&form.login, &token]).await {
    Ok(c) => c,
    Err(e) => {
    log::error!("Pool RW execute insert error {}", e);
    return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());
    }
    };
    if inserted == 0 {
    log::error!("Pool RW execute insert row error");
    return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());
    }
    let token_url = format!("{}reset-game-pwd-{}.html", data.base_url, token);
    log::info!(
    "Sending {} type {} to {}",
    token_url,
    form.contact_type,
    form.login
    );