如何生成新的Meteor登录令牌(服务器端)以便建立快速登录链接

时间:2013-03-28 14:36:22

标签: meteor

Meteor有一个loginWithToken方法,用户对象中有resume个标记。因此,可以使用loginWithToken之一使用其中一个令牌登录。这很有效。

有没有办法生成新的登录令牌,还是应该使用简历令牌来创建快速登录链接?

3 个答案:

答案 0 :(得分:19)

正如Johnny所说,你可以使用Accounts._generateStampedLoginToken()函数,这实际上没什么特别的,只需要以下函数:

_generateStampedLoginToken = function () {
  return {
    token: Random.secret(),
    when: new Date
  };
}

无论如何,要使用它,这是一个例子:

// Server //

// Creates a stamped login token
var stampedLoginToken = Accounts._generateStampedLoginToken();

/**
 * Hashes the stamped login token and inserts the stamped login token 
 * to the user with the id specified, adds it to the field 
 * services.resume.loginTokens.$.hashedToken. 
 * (you can use Accounts._hashLoginToken(stampedLoginToken.token) 
 * to get the same token that gets inserted)
 */
Accounts._insertLoginToken(user._id, stampedLoginToken);


// Client //

// Login with the stamped loginToken's token
Meteor.loginWithToken(stampedLoginToken.token);

答案 1 :(得分:3)

是的,您可以通过调用Accounts._generateStampedLoginToken()来生成新令牌。您可以在登录处理程序中调用它。

https://github.com/meteor/meteor/blob/master/packages/accounts-base/accounts_server.js#L114

答案 2 :(得分:3)

2015年 - 使用其中一个套餐:

  • 诗意:帐户 - 密码的
  • acemtp:帐户 - 密码的

http://fastosphere.meteor.com/?q=passwordless