无需密码
无需密码包允许您为用户创建登录,而无需用户提供密码。注册或登录时,系统会向用户的电子邮件发送一封包含确认登录代码的电子邮件以及直接登录的链接。由于用户正在回复电子邮件,因此它也会验证电子邮件。
无需密码流程的第一步是用户注册或请求将其电子邮件地址发送到其电子邮件地址。您可以使用以下方法执行此操作
Accounts.requestLoginTokenForUser仅限客户端
仅限客户端
摘要
请求登录令牌。
参数
源代码名称 | 类型 | 描述 | 必需 |
---|---|---|---|
选项 | 对象 | 是 | |
回调 | 函数 | 可选回调。成功时不带参数调用,失败时带单个 | 否 |
import { Accounts } from "meteor/accounts-base";
Accounts.requestLoginTokenForUser(
options,
() => {}, // this param is optional
);
如果用户正在注册,您可以像在Accounts.createUser中一样传入userData
对象。
Meteor.passwordlessLoginWithToken仅限客户端
仅限客户端
摘要
使用一次性令牌登录用户。
参数
源代码名称 | 类型 | 描述 | 必需 |
---|---|---|---|
选择器 | 对象或字符串 | 用户名、电子邮件或自定义选择器以识别用户。 | 是 |
令牌 | 字符串 | 服务器生成的一次性令牌 | 是 |
回调 | 函数 | 可选回调。成功时不带参数调用,失败时带单个 | 否 |
import { Meteor } from "meteor/meteor";
Meteor.passwordlessLoginWithToken(
selector,
"token",
() => {}, // this param is optional
);
无需密码流程中的第二步。与所有其他loginWith
函数一样,调用此方法以使用用户输入的令牌登录用户。
Accounts.sendLoginTokenEmail仅限服务器
仅限服务器
摘要
发送一封包含用户可用于使用令牌登录的链接的电子邮件。
参数
源代码名称 | 类型 | 描述 | 必需 |
---|---|---|---|
选项 | 对象 | 是 |
import { Accounts } from "meteor/accounts-base";
/** @returns Object */
const result = Accounts.sendLoginTokenEmail(
options
);
如果您想手动向用户发送电子邮件以使用来自服务器的令牌登录,请使用此函数。请注意,您需要自己创建令牌/序列并将其保存在数据库中。如果您想更改令牌的外观或生成方式,这很有用,但除非您确定自己在做什么,否则我们不建议这样做。
设置选项
您可以在服务器中使用函数Accounts.config
更改此包的一些设置
tokenSequenceLength:使用
Accounts.config({tokenSequenceLength: _Number_})
设置生成的令牌序列的大小。默认为 6。loginTokenExpirationHours:使用
Accounts.config({loginTokenExpirationHours: _Number_})
设置发送的令牌的有效时间。因为它只是一个数字,所以您可以使用例如 0.5 使令牌仅在半小时内有效。默认为 1 小时。
电子邮件模板
accounts-passwordless
提供了新的模板,您可以编辑这些模板来更改发送代码给用户的电子邮件的外观。电子邮件模板名为sendLoginToken
,除了user
和url
之外,模板还接收一个包含sequence
的数据对象,即用户的代码。
sendLoginToken: {
text: (user, url, { sequence }) => {
/* text template */
};
}
为该包启用 2FA
您可以通过使用accounts-2fa包将 2FA 添加到您的登录流程中。您可以找到一个显示此外观的示例此处。