- Added `bcrypt`, `jsonwebtoken`, and `once_cell` dependencies to manage password hashing and JWT handling. - Created `Claims` struct for JWT claims and implemented token generation in the login route. - Implemented user registration and authentication logic in the `auth` module. - Updated error handling to include validation errors. - Created new routes for user registration and login, and integrated them into the main router. - Added tests for the authentication flow, including registration and login scenarios. - Updated user model to include a password hash field. - Refactored user creation logic to include password validation. - Adjusted feed and user routes to utilize JWT for authentication.
24 lines
470 B
Rust
24 lines
470 B
Rust
use api::{
|
|
models::{ApiErrorResponse, ParamsErrorResponse},
|
|
routers::auth::*,
|
|
};
|
|
use models::{
|
|
params::auth::{LoginParams, RegisterParams},
|
|
schemas::user::UserSchema,
|
|
};
|
|
use utoipa::OpenApi;
|
|
|
|
#[derive(OpenApi)]
|
|
#[openapi(
|
|
paths(register, login),
|
|
components(schemas(
|
|
RegisterParams,
|
|
LoginParams,
|
|
UserSchema,
|
|
TokenResponse,
|
|
ApiErrorResponse,
|
|
ParamsErrorResponse,
|
|
))
|
|
)]
|
|
pub(super) struct AuthApi;
|