- 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.
Running Migrator CLI
-
Generate a new migration file
cargo run -- generate MIGRATION_NAME
-
Apply all pending migrations
cargo run
cargo run -- up
-
Apply first 10 pending migrations
cargo run -- up -n 10
-
Rollback last applied migrations
cargo run -- down
-
Rollback last 10 applied migrations
cargo run -- down -n 10
-
Drop all tables from the database, then reapply all migrations
cargo run -- fresh
-
Rollback all applied migrations, then reapply all migrations
cargo run -- refresh
-
Rollback all applied migrations
cargo run -- reset
-
Check the status of all migrations
cargo run -- status