0

使用流星用户帐户包,我想在signIn表单(命名token)中添加一个自定义字段以启用 2fa 身份验证。

不幸的是,就我所从事的工作而言,AccountTemplates.addField只能使用signUp形式。

有什么提示吗?

4

2 回答 2

2

accounts 包有一个Accounts.onLogin函数,您可以使用它来调用方法和更新用户帐户。

Accounts.onLogin(function(user) {
  Meteor.call('setToken', user)
})

接着

Meteor.methods({
  setToken: function(user) {
    // Do some clever check
    Meteor.users.update(/* Set your token */);
  },
});

使用方法的优点是您可以进行一些服务器端检查以确保您的令牌没有被黑客入侵。

于 2016-09-29T09:31:16.410 回答
1

我设法实现的答案是用不同的方法改变模式,直接使用 Meteor API:

  1. 在用户集合上设置一个特殊字段:tokenverified: false
  2. 添加Meteor.onLogin(每次登录或手动刷新页面时调用)和Meteor.onLogout回调以将此字段设置为 false
  3. 创建模板verify2FA处理token并设置tokenverified: true
  4. 创建一个ensure2FA将检查此令牌并重定向到verify2FA模板的 Iron-router 插件。
于 2016-09-30T14:44:17.130 回答