14 releases
0.5.0 | Nov 22, 2023 |
---|---|
0.5.0-rc.2 | Apr 18, 2023 |
0.5.0-rc.1 | Jun 9, 2021 |
0.4.1 | Sep 23, 2020 |
0.0.4 | Nov 1, 2018 |
#348 in Authentication
216 downloads per month
51KB
657 lines
rocket_oauth2
rocket_oauth2
helps set up an OAuth 2.0 client in Rocket
applications.
Major Versions
- 0.4.x, compatible with
rocket
0.4.x
, are based on the previousmaster
branch - 0.5.x, compatible with
rocket
0.5.x
, are based on the newermain
branch
Quickstart Example
For more detailed examples and explanations, see the crate documentation and the
projects in the repository's examples
directory.
Code
use rocket::http::{Cookie, CookieJar, SameSite};
use rocket::Request;
use rocket::response::Redirect;
use rocket_oauth2::{OAuth2, TokenResponse};
struct GitHub;
#[get("/login/github")]
fn github_login(oauth2: OAuth2<GitHub>, cookies: &CookieJar<'_>) -> Redirect {
oauth2.get_redirect(cookies, &["user:read"]).unwrap()
}
#[get("/auth/github")]
fn github_callback(token: TokenResponse<GitHub>, cookies: &CookieJar<'_>) -> Redirect
{
cookies.add_private(
Cookie::build(("token", token.access_token().to_string()))
.same_site(SameSite::Lax)
.build()
);
Redirect::to("/")
}
#[launch]
fn rocket() -> _ {
rocket::build()
.mount("/", routes![github_callback, github_login])
.attach(OAuth2::<GitHub>::fairing("github"))
}
Configuration (Rocket.toml
)
[default.oauth.github]
provider = "GitHub"
client_id = "..."
client_secret = "..."
redirect_uri = "http://localhost:8000/auth/github"
License
rocket_oauth2
is licensed under either of the following, at your option:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
Dependencies
~20–53MB
~1M SLoC