atshift Freeform Login adds server-verified passkey registration and login to WordPress while keeping the standard WordPress authentication flow and password fallback.
Passkeys let users sign in with a device's biometric authentication, PIN, or security key instead of typing a username and password. Because each credential is created for this site, passkeys reduce the risks of phishing and password reuse.
Users can register, name, and remove up to five passkeys from the standard WordPress profile screen. The current registration count is shown from 0/5 through 5/5. Synced passkeys may also be available on other devices using the same storage account. After the first passkey is registered on the site, a passkey login button appears on the WordPress login screen and in the
[atshift_login] shortcode.
If WP-Members or another plugin already provides the username and password form,
[atshift_passkey_login] can add only the passkey button beside it. Username and password login remains available as a fallback, so users should keep a long, unique password and store it in a password manager.
Passkey support is available on PHP 8.3 or newer when the PHP JSON and OpenSSL extensions are enabled and the site uses HTTPS. Localhost is supported for development. The rest of the plugin continues to run on its stated minimum PHP version when the passkey module is unavailable.
Passkey ceremonies are verified on the WordPress server and do not require an external authentication service. The bundled WebAuthn and supporting libraries are MIT licensed; package names and exact versions are recorded in
composer.lock.
When atshift User Profile Fields is active, its optional Passkeys field can place the same management controls within the configured profile layout. Credentials and authentication remain managed by atshift Freeform Login.
Login screen design and shortcodes
The plugin also customizes the standard WordPress login screen without replacing WordPress authentication. The free version includes background colors and images, a site-title brand display, form placement and width, core color controls, responsive fallback, a live preview, the login shortcode, and Jetpack SSO compatibility.
When Jetpack SSO is active, its
WordPress.com login UI is styled without replacing Jetpack authentication. The shortcode uses Jetpack automatically and respects Jetpack settings that hide or bypass the local login form. Use
[atshift_login jetpack="hide"] only when local username and password login remains available.
English is provided by the plugin source. Bundled translations are included for Japanese, Spanish, German, French, Brazilian Portuguese, Italian, Russian, Dutch, Simplified Chinese, Polish, Turkish, Indonesian, Traditional Chinese (Taiwan), and Korean.
- Upload the plugin folder to
/wp-content/plugins/.
- Activate the plugin.
- Open Settings > atshift Freeform Login in the WordPress administration menu.
- Configure and save the design.
- Enable login-screen application after reviewing the preview.
- On PHP 8.3 or newer, open Users > Profile to register a passkey.
- To add the complete login form to a page, insert
[atshift_login].
- If another plugin already provides the login form, insert
[atshift_passkey_login] where only the passkey button should appear.
- If another plugin provides a frontend profile page, insert
[atshift_passkey_profile] where the current user should manage passkeys.
Shortcode examples:
- Complete form with a redirect:
[atshift_login redirect="/my-account/"]
- Passkey button with a redirect:
[atshift_passkey_login redirect="/my-account/"]
- Passkey button with a persistent login cookie:
[atshift_passkey_login remember="true"]
- Passkey management without a duplicate heading:
[atshift_passkey_profile heading="false"]
For every attribute and examples of passkey-only login and frontend-profile integration, see the
Shortcode Guide.