14个版本
0.5.0 | 2023年11月22日 |
---|---|
0.5.0-rc.2 | 2023年4月18日 |
0.5.0-rc.1 | 2021年6月9日 |
0.4.1 | 2020年9月23日 |
0.0.4 | 2018年11月1日 |
在 认证 中排名第289
每月下载量216次
51KB
657 代码行
rocket_oauth2
rocket_oauth2
帮助在Rocket应用程序中设置OAuth 2.0客户端。
主要版本
快速入门示例
有关更详细示例和说明,请参阅crate文档和仓库中examples
目录中的项目。
代码
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"))
}
配置 (Rocket.toml
)
[default.oauth.github]
provider = "GitHub"
client_id = "..."
client_secret = "..."
redirect_uri = "https://127.0.0.1:8000/auth/github"
许可证
rocket_oauth2
采用以下之一授权,由您选择
- Apache许可证2.0版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖项
~18–51MB
~1M SLoC