mirror of
https://github.com/actix/examples
synced 2024-11-28 00:12:57 +01:00
8186a8cfea
Co-authored-by: Igor Aleksanov <popzxc@yandex.ru> Co-authored-by: Altug Sahin <altugsahin@gmail.com> Co-authored-by: Rob Ede <robjtede@icloud.com>
2.6 KiB
2.6 KiB
Auth Web Microservice with rust using Actix-Web 1.0
Flow of the event would look like this:
- Registers with email address ➡ Receive an 📨 with a link to verify
- Follow the link ➡ register with same email and a password
- Login with email and password ➡ Get verified and receive auth cookie
Available Routes
- GET /
- POST /api/invitation
- POST /api/invitation/:invitation_id
- GET /api/auth
- POST /api/auth
- DELETE /api/auth
Crates Used
- actix-web // Actix web is a simple, pragmatic and extremely fast web framework for Rust.
- rust-argon2 // crate for hashing passwords using the cryptographically-secure Argon2 hashing algorithm.
- chrono // Date and time library for Rust.
- diesel // A safe, extensible ORM and Query Builder for PostgreSQL, SQLite, and MySQL.
- dotenv // A dotenv implementation for Rust.
- derive_more // Convenience macros to derive tarits easily
- env_logger // A logging implementation for log which is configured via an environment variable.
- futures // An implementation of futures and streams featuring zero allocations, composability, and iterator-like interfaces.
- lazy_static // A macro for declaring lazily evaluated statics.
- r2d2 // A generic connection pool.
- serde // A generic serialization/deserialization framework.
- serde_json // A JSON serialization file format.
- serde_derive // Macros 1.1 implementation of #[derive(Serialize, Deserialize)].
- sparkpost // Rust bindings for sparkpost email api v1.
- uuid // A library to generate and parse UUIDs.
Read the full tutorial series on gill.net.in
Dependencies
On Ubuntu 19.10:
sudo apt install libclang-dev libpq-dev