콘텐츠로 바로가기
WordPress.org

한국어

  • 테마
  • 플러그인
  • 소식
    • 문서
    • 포럼
  • About
    • WordPress 6.9
    • 워드프레스 6.8
    • 워드프레스와 40% 웹을 위한 여정
    • 워드프레스 번역 핸드북
  • 워드프레스 한국팀
  • 워드프레스 받기
워드프레스 받기
WordPress.org

Plugin Directory

T2F Two-Screen Login Form

  • 플러그인 제출하기
  • 내 즐겨찾기
  • 로그인
  • 플러그인 제출하기
  • 내 즐겨찾기
  • 로그인

T2F Two-Screen Login Form

작성자: T2F Development & Consulting
다운로드
  • 세부사항
  • 평가
  • 설치
  • 개발
지원

설명

Most front-end login forms put the email and password on one screen. Big consumer
sites (Amazon, Google, PayPal…) split it in two: you type your email, press
Continue, and only then are you asked for your password.

T2F Two-Screen Login Form brings that flow to WordPress as a shortcode you can drop on
any page:

[two_step_login]

How it works

  1. Step 1 — identifier. The visitor enters their email (optionally username too)
    and presses Continue. By default this transition happens entirely in the
    browser — no server request — so the endpoint only ever sees the final submit.
  2. Step 2 — password. The email is shown with a Change link back to step 1.
    The visitor enters their password, optionally ticks Remember me, and signs in.
  3. On success the browser is redirected (to ?redirect_to= if present and on-site,
    otherwise to the page you configure — the WooCommerce account page by default,
    or the site home).

Everything happens without a full page reload until the final redirect.

Keeping the load down

Because step 1 is resolved client-side, a normal sign-in makes exactly one
admin-ajax.php call. Failed password attempts are rate-limited per IP address
and per email in a short rolling window before WordPress authentication runs,
and an off-screen honeypot field plus a minimum fill-time check drop obvious bot
submissions without the (CPU-heavy) password hash. Together these keep
credential-stuffing traffic from turning the login page into a load problem.

(When Unknown accounts is set to reveal missing accounts, step 1 still needs a
server round trip, since that answer can only come from the database.)

Privacy

By default the two possible step-1 responses are identical whether or not an account
exists, and failed logins return a single generic message — so the form cannot be
used to discover which email addresses have accounts. A setting lets you turn on
explicit “no account found” messages if you prefer Amazon’s behaviour.

Settings (Settings → Two-Screen Login)

  • First step accepts — email only, or email or username.
  • Unknown accounts — stay silent (default) or say when no account matches.
  • Rate limiting — throttle repeated failed logins per IP / email (on by default).
  • Redirect after login — a URL, or blank for the account page / home.
  • Lost-password URL — a URL, or blank for the default WordPress reset page.

For developers

add_filter( 'tslf_redirect_url', function ( $url ) { return home_url( '/dashboard/' ); } );
add_filter( 'tslf_lostpassword_url', function ( $url ) { return '/forgot/'; } );
add_filter( 'tslf_template', function ( $path, $name, $args ) { return $path; }, 10, 3 );
add_filter( 'tslf_logged_in_notice', function ( $html, $user ) { return $html; }, 10, 2 );
add_action( 'tslf_logged_in', function ( $user ) { /* ... */ } );

// Abuse mitigation.
add_filter( 'tslf_throttle', function ( $c ) { $c['id_max'] = 5; return $c; } ); // window, ip_max, id_max
add_filter( 'tslf_min_fill_ms', function () { return 2000; } );
add_filter( 'tslf_client_ip', function ( $ip ) { return $_SERVER['HTTP_CF_CONNECTING_IP'] ?? $ip; } );

The two step templates (templates/step-identifier.php, templates/step-password.php)
can be swapped with the tslf_template filter. Style hooks are plain classes
(.tslf, .tslf-form, .tslf-step, .tslf-error, .tslf-submit) and CSS custom
properties (--tslf-accent, --tslf-border, …).

Notes & limitations

  • This is a front-end form for a page of your choosing. It does not replace
    wp-login.php or change wp-admin.
  • No social login, no 2FA — those are separate concerns handled by other plugins.
  • If you serve the login page from a full-page cache, exclude it (or its nonce may
    age out for logged-out visitors after ~12 hours).
  • Translations (including Brazilian Portuguese) are managed on
    translate.wordpress.org, not bundled with the plugin. The text domain is
    t2f-two-screen-login.

스크린샷

Step 1 — the visitor enters their email address.
Step 1 — the visitor enters their email address.
Step 2 — the password screen, with a "Change" link back to the email step.
Step 2 — the password screen, with a “Change” link back to the email step.
Settings -> Two-Screen Login.
Settings -> Two-Screen Login.

설치

  1. Install and activate the plugin.
  2. Create a page (e.g. “Sign in”) and add the shortcode [two_step_login].
  3. Optionally review Settings → Two-Screen Login.
  4. Point your theme’s “Log in” links at that page.

FAQ

Does it work with WooCommerce?

Yes. If WooCommerce is active and no redirect is configured, users land on the
My Account page after logging in. It does not otherwise depend on WooCommerce.

Can visitors log in with their username instead of email?

Yes — set First step accepts to “Email address or username”.

JavaScript is required?

The stepped experience is JavaScript-driven, but the form also works with JS
disabled or blocked: it falls back to a full-page, step-by-step flow instead of
the in-browser transition. The bot timing check is skipped for no-JS submissions
(the honeypot and rate limiting still apply).

Does it support “Remember me”?

Yes, via a checkbox on the password step.

Is the password ever exposed?

No. It is sent once, over your site’s normal (HTTPS) connection, to WordPress’s
standard wp_signon() authentication — the same function core uses.

후기

이 플러그인에 대한 평가가 없습니다.

기여자 & 개발자

“T2F Two-Screen Login Form”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.

기여자
  • T2F Development & Consulting
  • Thaissa Mendes

자국어로 “T2F Two-Screen Login Form”(을)를 번역하세요.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록을 RSS로 구독하세요.

변경이력

1.1.0

  • Fix: the login form’s <form> has no action attribute, so with JavaScript disabled or blocked it silently failed to sign anyone in — there was no server-side handler for that plain POST. A Post/Redirect/Get fallback now handles it and resumes the flow step by step.
  • Fix (security): a failed password attempt could lock a known account out of the form for every visitor, from a single IP, without ever supplying a password. The per-identifier rate limit is now scoped to (IP, identifier) instead of the identifier alone.
  • Fix (security): with “First step accepts” set to email only, an identifier that didn’t resolve to an account could still reach WordPress authentication as a raw username, silently bypassing that setting for anyone who already knew a valid username + password.
  • Fix: ?redirect_to= was silently dropped on the default sign-in flow, since the request that authenticates carries no query string of its own. It’s now carried forward as a hidden field.
  • Fix: the non-JS fallback’s redirect could 404 on a subdirectory install (e.g. example.com/blog) by doubling the site’s own path prefix.
  • Fix: the rate limiter’s object-cache storage path had a non-atomic write that could race and undercount concurrent failed attempts under load; removed.
  • Fix: uninstall.php only cleaned up the site it ran on, and missed the non-JS fallback’s own transients. It’s now multisite-aware and covers both transient prefixes.

1.0.0

  • Initial release.

기초

  • 버전 1.1.0
  • 최근 업데이트: 1주 전
  • 활성화된 설치 10보다 적음
  • 워드프레스 버전 5.6 또는 그 이상
  • 다음까지 시험됨: 7.1.2
  • PHP 버전 7.4 또는 그 이상
  • 언어
    English (US)
  • 태그:
    authenticationFront end loginloginlogin formshortcode
  • 고급 보기

평점

아직 제출된 리뷰가 없습니다.

Your review

모든 리뷰 보기

기여자

  • T2F Development & Consulting
  • Thaissa Mendes

지원

할 말 있으신가요? 도움이 필요하신가요?

지원 포럼 보기

  • 소개
  • 뉴스
  • 호스팅
  • 개인정보
  • 쇼케이스
  • 테마
  • 플러그인
  • 패턴
  • 배우기
  • 지원
  • 개발자 도구
  • WordPress.tv ↗
  • 참여하기
  • 이벤트
  • 기부하기 ↗
  • Swag ↗
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org

한국어

  • X(이전 트위터) 계정 방문하기
  • 블루스카이 계정 방문하기
  • 마스토돈 계정 방문하기
  • 스레드 계정 방문하기
  • 페이스북 페이지 방문하기
  • 인스타그램 계정 방문하기
  • LinkedIn 계정 방문하기
  • 틱톡 계정 방문하기
  • 유튜브 채널 방문하기
  • 텀블러 계정 방문하기
코드는 詩다
The WordPress® trademark is the intellectual property of the WordPress Foundation.