无密码登录完全摒弃密码:用户通过输入一次性验证码来证明其持有某个手机号或电子邮件地址,验证码本身就是凭证。使用 Bird Verify,流程同样是发送然后验证——无需存储、重置或担心泄露密码,静默网络认证也在规划中,届时连输入验证码的步骤都将省去。
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
// Send the code, then check it by recipient.
await bird.verify.verifications.create({
to: { email_address: "ada@example.com" },
}).safe();
const { data } = await bird.verify.verifications.check({
to: { email_address: "ada@example.com" },
code: userInput,
}).safe();验证码在这里不是第二因素,而是唯一因素。
无密码登录就是将 Bird Verify API 直接用作登录方式:为用户登录的地址创建一次验证,然后检查其输入的验证码——验证通过即表示已登录。无需保护密码记录,无需存储验证 ID,每个用户使用哪个通道可按国家/地区配置。如果您选择在前面保留密码,同样的接口调用即可实现双因素认证。
无密码登录带来的优势。
存储更少,风险更低。
- 01
无密码可被泄露。
没有密码哈希可泄露,没有重置流程可钓鱼,也没有跨站点的凭证重用。认证因素就是对通道的持有。
- 02
注册和登录共用一个流程。
同一个创建-验证流程既可在注册时验证新地址,也可在登录时重新验证。一条路径,而非两条。
- 03
SMS、电子邮件或 WhatsApp 作为凭证。
使用您已拥有的用户通道(SMS、电子邮件或 WhatsApp)让用户登录,语音通道也即将推出,提供更多选择。
- 04
静默认证已在规划中。
运营商网络(静默)验证无需输入验证码即可证明号码归属,它作为未来通道已纳入设计,届时无需重写代码即可进一步降低操作摩擦。
无密码登录的工作原理
- 01
用户输入要登录的电子邮件或手机号。
- 02
一次创建调用即可向该地址发送一次性验证码。
- 03
用户在您的页面上输入验证码。
- 04
按接收者进行一次验证调用。验证通过即授予会话,无需比对密码,无需存储任何内容。
用验证码登录,而非密码。
将验证码发送到用户输入的地址,然后进行验证。验证通过即完成登录——没有密码需要比对。
await bird.verify.verifications.create({
to: { email_address: input.email },
}).safe();
const { data } = await bird.verify.verifications.check({
to: { email_address: input.email },
code: submitted,
}).safe();
// a true result is the login — no password to compare
if (data.result) grantSession(input.email);