Skip to main content

authx_core/models/
credential.rs

1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5#[serde(rename_all = "snake_case")]
6pub enum CredentialKind {
7    Password,
8    Passkey,
9    Webauthn,
10    OauthToken,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct Credential {
15    pub id: Uuid,
16    pub user_id: Uuid,
17    pub kind: CredentialKind,
18    pub credential_hash: String,
19    pub metadata: serde_json::Value,
20}
21
22#[derive(Debug, Clone)]
23pub struct CreateCredential {
24    pub user_id: Uuid,
25    pub kind: CredentialKind,
26    pub credential_hash: String,
27    pub metadata: Option<serde_json::Value>,
28}