Habr•October 11, 2026•🇷🇺Translated from Russian

Passkeys in Production: How One Developer Replaced Passwords with Face ID in Three Days Using FastAPI and Next.js

Passkeys are no longer future technology. They already power authentication in major banking apps on phones, including Alpha-Bank, Tinkoff, and Sber. GitHub, Apple, and Google have also adopted them. Yet many web services still require users to create passwords with uppercase letters, numbers, and special characters, followed by monthly reset prompts.

Yaroslav Morozov, who builds Continental IT consulting and an internal product, decided to skip password friction when implementing authorization. The team chose Passkeys and completed the rollout in three days. This article delivers complete production code from database migration to the Face ID login button, using FastAPI on the backend and Next.js on the frontend.

Why Passkeys Matter

Passkeys offer superior security and convenience. Passwords can be phished on fake sites, while Passkeys bind cryptographic keys to the correct domain. Database leaks expose bcrypt hashes that attackers can crack, but private keys never leave the device. Users no longer need to invent, remember, or reset passwords; a fingerprint or facial scan suffices. Unlike reused passwords across sites, each Passkey pair is unique per domain.

According to the FIDO Alliance, more than 15 billion accounts already support Passkeys. Google, Apple, and Microsoft have integrated support at the operating system level. Technically, Passkeys implement the WebAuthn standard from the FIDO2 family.

How Passkeys Work

A Passkey consists of an asymmetric key pair. The private key resides in the device Secure Enclave and never leaves it. The public key is sent to the server during registration. During authentication the server issues a random 32-byte challenge. The device signs it after biometric confirmation, and the server verifies the signature with the stored public key. No password travels over the network.

Discoverable credentials enable automatic synchronization across devices via iCloud Keychain on Apple platforms or Google Password Manager on Android. Passkeys replace only the login-password step; after successful verification the backend still issues standard JWT access and refresh tokens.

Database Schema and Models

Two PostgreSQL tables store everything. The webauthn_credentials table holds credential_id, public_key, sign_count, transports, and device_name. The webauthn_challenges table manages one-time challenges with a five-minute TTL. SQLAlchemy models map these tables with proper relationships and cascade deletes.

Backend Service with py-webauthn

The service uses only three environment variables for RP ID, RP name, and origin. Custom exceptions handle verification failures, missing credentials, and deactivated accounts. Methods generate registration and authentication options, verify responses, save and pop challenges, and manage user credentials. All cryptographic operations rely on the mature py-webauthn library.

Related articles

Habr•Other

Yandex Data Center Attacks Trigger Outages, Cloud Disruptions and Stock Decline

A series of physical attacks has disabled or partially damaged multiple Yandex data centers in Russia, leading to prolonged service outages across cloud and consumer platforms. Fires and power failures struck facilities in Sasovo, Kaluga and Vladimir between 8 and 11 October, forcing the company to shift workloads to the remaining Mytishchi site. Analysts from Finam, Rikom-Trust and Freedom Global note that recovery timelines now stretch from several months to two years for specialized hardware such as supercomputers. The incidents have already erased nearly 9 percent of Yandex share value and raised concerns over future capital expenditure, client retention in Yandex Cloud and potential sanctions complications for overseas expansion. Experts emphasize that the attacks have moved from isolated technical failures to a systemic business-continuity and investment-risk issue.

AntiMalware•Other

Cyber Attack on Danfoss Systems Forces Defrost in 250 French Supermarkets, Spoiling Stock

Hackers compromised refrigeration control systems supplied by Danfoss in French supermarket chains Intermarché and Coopérative U, activating continuous defrost cycles that raised temperatures to 50 °C. The sabotage affected between 150 and 200 Intermarché stores and nearly 100 Coopérative U locations, forcing retailers to discard large quantities of fresh and frozen goods. French authorities confirmed the incidents, with the Paris prosecutor’s office opening an investigation after reports of associated fires. The attackers exploited the normal maintenance function of the Danfoss equipment, turning brief defrost cycles into prolonged warming that broke the cold chain. Coopérative U chairman Dominique Schelcher described the event as unprecedented and stated that technical teams are working with refrigeration specialists to restore operations. No group has claimed responsibility, and investigators continue to examine the initial access vector. The incident illustrates how manipulation of industrial control systems can produce immediate physical and financial damage without traditional data theft or encryption.

Habr•Other

Yandex Cloud Cascade Failure October 2026 Exposes Multi-AZ Limits and Capacity Exhaustion Risks

In October 2026, Yandex Cloud suffered a prolonged cascade outage across multiple data centers in Sасово, Калуга, and Владимир, triggered by power failures and a drone-related fire that fully disabled the ru-central1-b zone. The incident revealed that standard Multi-AZ designs reach physical capacity exhaustion when multiple zones fail simultaneously, leaving insufficient resources in remaining zones for automatic failover. Businesses relying on managed Kubernetes, databases, and SaaS platforms such as Salebot and CIAN experienced extended recovery times, with backups becoming inaccessible and RTO stretching beyond 24 hours due to index rebuilds and manual quota allocation. Yandex Cloud responded by manually distributing quotas, partnering with Selectel, K2Cloud, and VK Cloud for emergency capacity, and advising clients to activate external disaster recovery plans. The outage also highlighted single points of failure in DDoS protection configurations and Control Plane dependencies that prevented timely migration of master nodes. Architectural recommendations include deploying independent edge webhook buffers using FastAPI on separate VDS instances to preserve incoming events during primary backend failures. Overall, the events underscore the necessity of true multi-cloud strategies that avoid reliance on any single provider's IAM, billing, and physical infrastructure.

Habr•Other

Yandex Disk Files Become Partially Inaccessible After Sasovo Data Center Incident

A detailed user report reveals that approximately one percent of files stored on Yandex Disk are currently unavailable for download following reported incidents at the Sasovo data center. The problems manifest in three distinct states: missing thumbnails with downloadable originals, visible thumbnails with inaccessible originals returning 504 Gateway Time-out errors, and cases where both thumbnails and originals fail to load. Technical analysis using curl requests traced the failures to specific storage nodes such as s418klg.storage.yandex.net, indicating that some data shards may reside in affected infrastructure while others remain operational. Yandex support requested original files for diagnosis but closed the ticket without providing an official explanation or confirming data integrity. The author emphasizes that the issue affects files across both the Photos and Files sections and recommends maintaining offline backups due to the lack of guaranteed availability during data center failures.