12个不稳定版本 (4个破坏性更新)
0.5.0 | 2024年3月11日 |
---|---|
0.4.0 | 2023年8月19日 |
0.3.3 | 2023年3月26日 |
0.3.1 | 2023年1月24日 |
0.1.1 | 2022年10月29日 |
#142 in 身份验证
每月下载量 417
34KB
507 行
rocket-firebase-auth
Firebase Auth with Rocket,含电池组
- 小巧:
rocket-firebase-auth
非常小巧,具有让您进一步减小其大小的功能 - 专注做好一件事: 在Rocket应用程序中编码/解码Firebase JWT令牌,仅此而已
入门
1. 将Firebase服务账户密钥设置为环境变量
如果您还没有,为要创建的Rocket后端在Firebase中创建一个服务账户。生成一个新的私钥,并将生成的json复制粘贴到firebase-credentials.json
文件中。它看起来应该像下面的json片段。
{
"type": "*********",
"project_id": "***********",
"private_key_id": "*************",
"private_key": "*****************",
"client_email": "*********",
"client_id": "*******",
"auth_uri": "********",
"token_uri": "********",
"auth_provider_x509_cert_url": "********",
"client_x509_cert_url": "********"
}
别忘了将firebase-credentials.json
文件添加到您的.gitignore
中。
# Firebase service account's secret credentials
firebase-credentials.json
2. 设置FirebaseAuth
并开始使用
将rocket-firebase-auth
添加到您的项目中。
rocket_firebase_auth = "0.5"
现在,您可以通过使用默认导入中的辅助函数读取json文件来创建一个FirebaseAuth
结构。
use rocket::{get, http::Status, routes, Build, Rocket};
use rocket_firebase_auth::{FirebaseAuth, FirebaseToken};
// Setup the server state, which will include your FirebaseAuth instance, among
// other things like the connection pool to your database.
struct ServerState {
auth: FirebaseAuth,
}
#[get("/")]
async fn hello_world(token: FirebaseToken) -> Status {
println!("Authentication succeeded with uid={}", token.sub);
Status::Ok
}
#[rocket::launch]
async fn rocket() -> Rocket<Build> {
let firebase_auth = FirebaseAuth::builder()
.json_file("firebase-credentials.json")
.build()
.unwrap();
rocket::build()
.mount("/", routes![hello_world])
.manage(ServerState {
auth: firebase_auth,
})
}
示例项目
有关带有前端示例的更详细示例,请参阅示例项目。
测试
要运行测试,请运行以下命令
cargo test -- --test-threads=1
贡献
欢迎任何贡献(PR,问题)!
问题
如果您有任何问题,无论看起来多么微不足道,请通过问题让我知道。我会回答的!
许可证
MIT
依赖项
~17–53MB
~1M SLoC