Skip to content

Commit a8ea262

Browse files
Add files via upload
1 parent 6f02178 commit a8ea262

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/auth/passkeys/passkeys.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
import os
3+
import hashlib
4+
import secrets
5+
6+
class PasskeyManager:
7+
def __init__(self):
8+
self.passkeys = {}
9+
10+
def generate_passkey(self, user_id):
11+
"""Generate a secure passkey for a user."""
12+
key = secrets.token_urlsafe(32)
13+
hashed_key = hashlib.sha256(key.encode()).hexdigest()
14+
self.passkeys[user_id] = hashed_key
15+
return key
16+
17+
def validate_passkey(self, user_id, passkey):
18+
"""Validate a given passkey for a user."""
19+
hashed_key = hashlib.sha256(passkey.encode()).hexdigest()
20+
return self.passkeys.get(user_id) == hashed_key
21+
22+
if __name__ == "__main__":
23+
manager = PasskeyManager()
24+
user_id = "user123"
25+
key = manager.generate_passkey(user_id)
26+
print(f"Generated passkey for {user_id}: {key}")
27+
28+
# Validate Passkey
29+
valid = manager.validate_passkey(user_id, key)
30+
print(f"Passkey validation result: {'Valid' if valid else 'Invalid'}")

0 commit comments

Comments
 (0)