14个版本

0.5.0 2023年11月22日
0.5.0-rc.22023年4月18日
0.5.0-rc.12021年6月9日
0.4.1 2020年9月23日
0.0.4 2018年11月1日

认证 中排名第289

Download history 92/week @ 2024-03-13 84/week @ 2024-03-20 43/week @ 2024-03-27 88/week @ 2024-04-03 45/week @ 2024-04-10 49/week @ 2024-04-17 49/week @ 2024-04-24 30/week @ 2024-05-01 23/week @ 2024-05-08 26/week @ 2024-05-15 23/week @ 2024-05-22 38/week @ 2024-05-29 63/week @ 2024-06-05 98/week @ 2024-06-12 26/week @ 2024-06-19 25/week @ 2024-06-26

每月下载量216

MIT/Apache

51KB
657 代码行

rocket_oauth2

maintenance: passive crates.io docs.rs

rocket_oauth2帮助在Rocket应用程序中设置OAuth 2.0客户端。

主要版本

  • 0.4.x,兼容rocket 0.4.x,基于之前的master分支
  • 0.5.x,兼容rocket 0.5.x,基于新的main分支

快速入门示例

有关更详细示例和说明,请参阅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采用以下之一授权,由您选择

依赖项

~18–51MB
~1M SLoC