Skip to main content

PasswordVerifier

Trait PasswordVerifier 

Source
pub trait PasswordVerifier: Send + Sync {
    // Required method
    fn verify_password(
        &self,
        username: &str,
        password: &str,
    ) -> Result<i64, AuthError>;
}
Expand description

密码验证器 trait(v0.2.1 新增,修复 Critical S-1)

JwtAuthenticator::authenticate 调用此 trait 验证密码并获取 user_id。 调用方负责实现真实的密码哈希校验(如 bcrypt/argon2)和用户查询。

§示例

use sz_orm_auth::{PasswordVerifier, AuthError};

struct DbPasswordVerifier;

impl PasswordVerifier for DbPasswordVerifier {
    fn verify_password(&self, username: &str, password: &str) -> Result<i64, AuthError> {
        // 1. 查询数据库获取 stored_hash 和 user_id
        // 2. 用 bcrypt::verify(password, &stored_hash) 校验
        // 3. 校验通过返回 Ok(user_id),否则 Err(AuthError::InvalidCredentials(...))
    }
}

Required Methods§

Source

fn verify_password( &self, username: &str, password: &str, ) -> Result<i64, AuthError>

验证密码并返回 user_id

§返回
  • Ok(user_id):密码正确,返回用户 ID
  • Err(AuthError::InvalidCredentials(_)):密码错误或用户不存在

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§