#firebase #jwt #decoding #api

firebase_jwt_rs

为 JWT 客户端令牌解码提供的 Firebase 工具

3 个版本

0.1.2 2023 年 1 月 6 日
0.1.1 2023 年 1 月 5 日
0.1.0 2023 年 1 月 5 日

29#firebase

MIT 许可证

8KB
92

firebase-jwt-rs

Firebase JWT 解码实用工具,用于 Rust。

Screen Shot 2023-01-05 at 11 03 13 PM

这是什么?

如果您有一个 Rust 服务器并计划为验证您的 Firebase 用户客户端令牌创建 API,那么这正适合您!

它仅包含用于解码您的客户端令牌的小型实用工具。

阅读更多

https://firebase.google.com/docs/auth/admin/verify-id-tokens#verify_id_tokens_using_a_third-party_jwt_library

流程

  1. 在您的前端,您可以通过使用 Firebase 客户端 SDK 获取您的 uid + 客户端令牌。

    示例: https://firebase.google.com/docs/auth/admin/verify-id-tokens#retrieve_id_tokens_on_clients

  2. 然后您的客户端可以调用后端的 Rust API,并将 uid + 客户端令牌发送到 HTTP Header/POST body(由您决定),这将传递给 verify_token(uid, client_token) 工具。

  3. FIREBASE_PROJECT_ID 环境变量添加到您的本地和生产服务器上的后端

  4. 后端 Rust 将验证并作为 json 返回 JWT 声明响应(包括提取的用户数据,和验证的用户_id)

如何使用

use firebase_jwt_rs::*;
use jsonwebtoken::TokenData;
use std::error::Error;

let uid = "your-user-uid";
let client_token = "your-client-token";

let result: Result<TokenData<Claims>, Box<dyn Error>> = verify_token(uid, client_token).await;

match result {
  Ok(res: TokenData<Claims>) => {
    let text: String = serde_json::to_string(&res.claims).unwrap();
    println!("result:{text}");
  }
  Err(e) => {
    println!("err:{e}");
  }
}

许可证

MIT

依赖项

~9–21MB
~426K SLoC