google_jwt_signin/
token.rs

1use serde_derive::Deserialize;
2
3#[derive(Debug, PartialEq, Clone)]
4pub struct Token<P> {
5    pub claims: RequiredClaims,
6    pub payload: P,
7}
8
9// https://datatracker.ietf.org/doc/html/rfc7519#section-4.1
10#[derive(PartialEq, Deserialize, Debug, Clone)]
11pub struct RequiredClaims {
12    #[serde(rename = "iss")]
13    pub issuer: String,
14
15    #[serde(rename = "sub")]
16    pub subject: String,
17
18    #[serde(rename = "aud")]
19    pub audience: String,
20
21    #[serde(rename = "exp")]
22    pub expires_at: u64,
23
24    #[serde(rename = "iat")]
25    pub issued_at: u64,
26}
27
28// https://developers.google.com/identity/gsi/web/reference/html-reference#credential
29#[allow(dead_code)]
30#[derive(Deserialize, Clone, Debug)]
31pub struct IdPayload {
32    pub email: Option<String>,
33    pub email_verified: Option<bool>,
34    pub name: Option<String>,
35    pub picture: Option<String>,
36    pub given_name: Option<String>,
37    pub family_name: Option<String>,
38    pub locale: Option<String>,
39    #[serde(rename = "hd")]
40    pub domain: Option<String>,
41}