feat(auth): implement user registration and login with JWT authentication
- 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.
This commit is contained in:
@@ -3,6 +3,7 @@ pub struct Config {
|
||||
pub host: String,
|
||||
pub port: u32,
|
||||
pub prefork: bool,
|
||||
pub auth_secret: String,
|
||||
}
|
||||
|
||||
impl Config {
|
||||
@@ -15,6 +16,7 @@ impl Config {
|
||||
.parse()
|
||||
.expect("PORT is not a number"),
|
||||
prefork: std::env::var("PREFORK").is_ok_and(|v| v == "1"),
|
||||
auth_secret: std::env::var("AUTH_SECRET").unwrap_or_else(|_| "secret".into()),
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user