1234567891011121314151617181920212223242526272829 |
- use bcrypt::{hash, verify, DEFAULT_COST};
- use flowy_net::errors::{ErrorCode, ServerError};
- #[allow(dead_code)]
- pub fn uuid() -> String { uuid::Uuid::new_v4().to_string() }
- pub fn hash_password(plain: &str) -> Result<String, ServerError> {
- let hashing_cost = std::env::var("HASH_COST")
- .ok()
- .and_then(|c| c.parse().ok())
- .unwrap_or(DEFAULT_COST);
- hash(plain, hashing_cost).map_err(|e| ServerError::internal().context(e))
- }
- // The Source is the password user enter. The hash is the source after hashing.
- // let source = "123";
- // let hash = hash_password(source).unwrap();
- //
- // verify_password(source, hash)
- pub fn verify_password(source: &str, hash: &str) -> Result<bool, ServerError> {
- match verify(source, hash) {
- Ok(true) => Ok(true),
- _ => Err(ServerError::new(
- "Username and password don't match".to_string(),
- ErrorCode::PasswordNotMatch,
- )),
- }
- }
|