#extractor #introspection #oauth2 #validate #token #actix-web #rfc

actix-middleware-rfc7662

通过RFC 7662令牌反射端点验证OAuth2令牌的Actix-web提取器

2个不稳定版本

0.2.0 2022年3月23日
0.1.0 2022年3月21日

认证中排名第980

每月下载量24

MIT许可证

16KB
228

通过RFC 7662令牌反射端点验证OAuth2令牌的Actix-web提取器。

为了保护资源,您需要添加RequireAuthorization提取器。在使用之前,此提取器必须配置令牌反射url。

提取器接受一个实现AuthorizationRequirements特质的对象,该特质用于分析反射响应,以确定请求是否已授权。

示例


#[get("/protected/api")]
async fn handle_read(_auth: RequireAuthorization<AnyScope>) -> impl Responder {
    HttpResponse::Ok().body("Success!\n")
}

fn setup_server() -> std::io::Result<impl Future> {
    let oauth_config = RequireAuthorizationConfig::<StandardToken>::new(
        "client_id".to_string(),
        Some("client_secret".to_string()),
        "https://example.com/oauth/authorize".parse().expect("invalid url"),
        "https://example.com/oauth/introspect".parse().expect("invalid url"),
    );

    Ok(HttpServer::new(move || {
        actix_web::App::new()
            .app_data(oauth_config.clone())
            .service(handle_read)
    })
    .bind("127.0.0.1:8182".to_string())?
    .run())
}

依赖项

~16–30MB
~540K SLoC