بگذارید بازدیدکنندگان ورود دومرحلهای را روشن کنند
هدف
بگذارید کسی که به درگاه شما وارد میشود ورود دومرحلهای را روشن کند: برنامهٔ احرازکنندهای روی گوشیاش که در هر ورود یک کد ششرقمی از او خواسته میشود.
پیش از شروع
- درگاهی که از بازدیدکنندگان میخواهد وارد شوند. ببینید از بازدیدکنندگان بخواهید وارد شوند.
تمام ماجرا یک دکمه است
روی هر صفحهٔ درگاهتان دکمهای بکشید و این دستور را به آن بدهید:
openAccountSecurity();
همین. سکو صفحهٔ خودش را روی صفحهٔ شما باز میکند و بازدیدکننده کد را اسکن میکند، شش رقم را وارد میکند و کدهای بازیابیاش را ذخیره میکند، بیآنکه شما چیزی از آن را کشیده باشید.
یا خودتان بکشیدش
اگر میخواهید این صفحه شبیه باقی سایتتان باشد، صفحهای از آنِ خودتان بکشید — پشت ورود، چون دربارهٔ حساب بازدیدکننده است — و این فراخوانیها را، به همین ترتیب، به آن بدهید:
| چه وقت | فراخوانی |
|---|---|
| صفحه بارگذاری میشود | loadAccountSecurity("mfa") — state.mfa.enabled میگوید روشن است یا نه |
| روشن کن زده میشود | startAuthenticator("enrol") |
| بررسی کد زده میشود | verifyAuthenticator(getState("code"), "codes") |
| ذخیرهشان کردم زده میشود | completeAuthenticator("done") |
| خاموش کن زده میشود | disableAuthenticator(getState("offCode")) |
- کد QR همان
state.enrol.qrCodeاست — تصویری بگذارید و منبعش را به آن ببندید.state.enrol.sharedKeyرا کنارش بگذارید برای کسی که دوربینش کد را نمیخواند. - کدهای بازیابی بهصورت فهرستی در
state.codesمینشینند؛ سطری را روی آن تکرار کنید کهrow.codeرا نشان دهد. - ورود دومرحلهای تا
completeAuthenticatorروشن نمیشود. بررسی کد فقط ثابت میکند برنامه کار میکند. پس کدها را با جملهای بکشید که به بازدیدکننده بگوید همین حالا ذخیرهشان کند — دوباره نشان داده نمیشوند — و دکمهای که بگوید ذخیره کرده است. اگر صفحهٔ شما این گام را جا بیندازد، عامل دوم بهسادگی خاموش میماند ، نه اینکه با کدهایی که کسی ندیده روشن شود.
کد QR در مرورگر خود بازدیدکننده کشیده میشود؛ هرگز برای تبدیل به تصویر به جایی فرستاده نمیشود، چون رمزی را که برنامهٔ او به کار خواهد برد با خود دارد.
نمونهٔ portal-landing-page این را در صفحهٔ Sign-in security خود دارد.
بازدیدکننده چه میبیند
صفحه میگوید حساب او در چه وضعی است و تنها کاری را پیشنهاد میدهد که ممکن است:
| حساب او | صفحه چه پیشنهاد میدهد |
|---|---|
| ورود دومرحلهای خاموش | روشن کردن ورود دومرحلهای — اسکن، اثبات، ذخیرهٔ کدها |
| ورود دومرحلهای روشن | چند کد بازیابی مانده، و جعبهای برای خاموش کردن با یک کد فعلی |
ترتیب: اسکن ← اثبات ← نوشتن کدها، و تا وقتی کدها تأیید نشدهاند عامل دوم روشن نمیشود. کسی که نیمهٔ راه زبانه را ببندد، هیچ چیزی در حسابش عوض نشده است — و دلیل سهمرحلهای بودن همین است.
خاموش کردن، کد میخواهد
بازدیدکننده میتواند ورود دومرحلهای خودش را خاموش کند — حساب مال اوست — اما فقط با وارد کردن یک کد فعلی یا یکی از کدهای بازیابی. این عمدی است: خاموش کردن عامل دوم دقیقاً کاری است که کسی که نشستِ دزدیدهای در دست دارد انجام میدهد.
کسانی که به پوستهٔ پارسور و مرکز کنترل مدیریت وارد میشوند باید عامل دوم داشته باشند، و به جای خاموش کردن راهی برای انتقال آن به گوشی جدید به آنها داده میشود. این تصمیمی دربارهٔ سطحی است که پروندهٔ همهٔ مشتریان را نگه میدارد؛ آن را به جای مشتریان شما نمیگیریم.
در ورود بعدی چه میشود
چیزی که لازم باشد بکشید، نه. فرم ورودِ خود سکو کد را میپرسد، کنار نشانی و گذرواژه، و کد بازیابی را در همان جعبه میپذیرد — کد بازیابی ششرقمی نیست، پس سکو تشخیص میدهد کدام یک به او داده شده است.
اگر صفحهٔ ورود خودتان را کشیدهاید، باید جعبهٔ کدی داشته باشد که
وقتی signIn میگوید حساب کد میخواهد ظاهر شود — آن صفحه نشان میدهد چگونه.
چه کاری نمیکند
- احرازکننده را در یک مرحله به گوشی جدید منتقل نمیکند. بازدیدکنندهای که گوشیاش را ندارد، با یک کد بازیابی عامل را خاموش و دوباره روشن میکند؛ یک مرحلهٔ بیشتر و بدون از دست رفتن چیزی.
- کسی را مجبور نمیکند. ورود دومرحلهای به بازدیدکنندگان شما پیشنهاد میشود و هرگز از آنها خواسته نمیشود. اگر درگاه شما باید آن را الزامی کند، این گفتوگویی با ماست، نه صفحهای برای کشیدن.
- روی درگاهی که همه میتوانند بازش کنند کاری نمیکند. حسابی نیست که عامل دوم به آن تعلق بگیرد، پس دکمه همین را گزارش میدهد به جای آنکه وانمود کند کار میکند.
امتحانش کنید
راهحل نمونهٔ portal-sign-in-and-accounts این را روی صفحهای به نام
امنیت ورود دارد، همراه با صفحهٔ این نمونه چطور کار میکند که مرحلهبهمرحله راهنمایی میکند.