mirror of
https://github.com/Noratrieb/karlauth.git
synced 2026-01-14 14:25:02 +01:00
can delete
This commit is contained in:
parent
357b6ce794
commit
dfc6771135
2 changed files with 5 additions and 25 deletions
16
src/auth.rs
16
src/auth.rs
|
|
@ -3,9 +3,8 @@ use crate::models::User;
|
|||
use actix_web::dev::{Payload, ServiceRequest};
|
||||
use actix_web::error::ErrorUnauthorized;
|
||||
use actix_web::http::header::Header;
|
||||
use actix_web::{FromRequest, HttpMessage, HttpRequest, HttpResponse};
|
||||
use actix_web::{FromRequest, HttpMessage, HttpRequest};
|
||||
use actix_web_httpauth::extractors::bearer::BearerAuth;
|
||||
use actix_web_httpauth::extractors::AuthenticationError;
|
||||
use actix_web_httpauth::headers::authorization;
|
||||
use actix_web_httpauth::headers::authorization::Bearer;
|
||||
use chrono::Utc;
|
||||
|
|
@ -41,19 +40,6 @@ impl FromRequest for Claims {
|
|||
}
|
||||
}
|
||||
|
||||
pub async fn validator(
|
||||
req: ServiceRequest,
|
||||
credentials: BearerAuth,
|
||||
) -> Result<ServiceRequest, actix_web::Error> {
|
||||
match validate_token(credentials.token()) {
|
||||
Ok(claims) => {
|
||||
req.extensions_mut().insert(claims);
|
||||
Ok(req)
|
||||
}
|
||||
Err(err) => Err(err.into()),
|
||||
}
|
||||
}
|
||||
|
||||
fn validate_token(token: &str) -> Result<Claims, actix_web::Error> {
|
||||
let secret = std::env::var("JWT_SECRET").expect("JWT_SECRET env var");
|
||||
|
||||
|
|
|
|||
14
src/main.rs
14
src/main.rs
|
|
@ -1,7 +1,6 @@
|
|||
#[macro_use]
|
||||
extern crate diesel;
|
||||
|
||||
use crate::auth::validator;
|
||||
use actix_web::{web, App, HttpServer};
|
||||
use actix_web_httpauth::middleware::HttpAuthentication;
|
||||
use diesel::prelude::*;
|
||||
|
|
@ -28,19 +27,14 @@ async fn main() -> std::io::Result<()> {
|
|||
.expect("Failed to create pool.");
|
||||
|
||||
HttpServer::new(move || {
|
||||
let auth_middleware = HttpAuthentication::bearer(validator);
|
||||
App::new()
|
||||
.data(pool.clone())
|
||||
.route("/users", web::post().to(handlers::add_user))
|
||||
.route("/test", web::get().to(handlers::test_auth))
|
||||
.route("/admin", web::post().to(handlers::admin_login))
|
||||
.service(
|
||||
web::scope("/users")
|
||||
.wrap(auth_middleware)
|
||||
.route("", web::get().to(handlers::get_users))
|
||||
.route("/{id}", web::get().to(handlers::get_user_by_id))
|
||||
.route("/{id}", web::delete().to(handlers::delete_user)),
|
||||
)
|
||||
.route("/users", web::get().to(handlers::get_users))
|
||||
.route("/users", web::post().to(handlers::add_user))
|
||||
.route("/users/{id}", web::get().to(handlers::get_user_by_id))
|
||||
.route("/users/{id}", web::delete().to(handlers::delete_user))
|
||||
})
|
||||
.bind("127.0.0.1:8080")?
|
||||
.run()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue