Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 在登录表单上添加自定义字段_Meteor_Meteor Useraccounts - Fatal编程技术网

Meteor 在登录表单上添加自定义字段

Meteor 在登录表单上添加自定义字段,meteor,meteor-useraccounts,Meteor,Meteor Useraccounts,使用meteor useraccounts包,我想在signIn表单(名为token)中添加一个自定义字段,以启用2fa身份验证 不幸的是,AccountTemplates.addField仅适用于signUp表单,就我的工作而言 有什么提示吗?accounts软件包有一个accounts.onLogin函数,您可以使用该函数调用方法并更新用户帐户 Accounts.onLogin(function(user) { Meteor.call('setToken', user) }) 然后 M

使用meteor useraccounts包,我想在
signIn
表单(名为
token
)中添加一个自定义字段,以启用2fa身份验证

不幸的是,
AccountTemplates.addField
仅适用于
signUp
表单,就我的工作而言


有什么提示吗?

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 */);
  },
});

使用方法的优点是,您可以执行一些服务器端检查,以确保您的令牌未被黑客攻击。

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 */);
  },
});

使用方法的优点是,您可以执行一些服务器端检查,以确保您的令牌未被黑客攻击。

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

  • 在用户集合上设置特殊字段:
    tokenverified:false
  • 添加
    Meteor.onLogin
    (每次手动登录或刷新页面时调用)和
    Meteor.onLogout
    回调以将此字段设置为false
  • 创建一个模板
    verify2FA
    来处理令牌并设置
    tokenverified:true
  • 创建一个iron路由器插件
    ensure2FA
    ,该插件将检查此令牌并重定向到
    verify2FA
    模板

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

  • 在用户集合上设置特殊字段:
    tokenverified:false
  • 添加
    Meteor.onLogin
    (每次手动登录或刷新页面时调用)和
    Meteor.onLogout
    回调以将此字段设置为false
  • 创建一个模板
    verify2FA
    来处理令牌并设置
    tokenverified:true
  • 创建一个iron路由器插件
    ensure2FA
    ,该插件将检查此令牌并重定向到
    verify2FA
    模板

  • 是的,我设法使用了这个替代方案。还需要:-一些自定义路由在某些页面上强制2FA-检测是否有其他客户端正在登录,否则您可以登录并设置令牌,让其他客户端也只使用密码登录。抱歉,我想我遗漏了一些内容。路由和多次日志记录有什么问题?你说的是两个不同的客户试图登录,还是同一个客户从两个不同的页面登录?我设法让整个过程正常进行。将给出一个详细的答案,以便使用此备选方案。还需要:-一些自定义路由在某些页面上强制2FA-检测是否有其他客户端正在登录,否则您可以登录并设置令牌,让其他客户端也只使用密码登录。抱歉,我想我遗漏了一些内容。路由和多次日志记录有什么问题?你说的是两个不同的客户试图登录,还是同一个客户从两个不同的页面登录?我设法让整个过程正常进行。我会详细回答