16

Meteor 有一个loginWithToken方法,用户对象中有resume令牌。因此,可以使用这些令牌之一登录loginWithToken。这样可行。

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

4

3 回答 3

23

正如约翰尼所说,你可以使用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);
于 2015-10-27T12:07:15.953 回答
3

是的,您可以通过调用Accounts._generateStampedLoginToken(). 您可以从登录处理程序中调用它。

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

于 2013-08-01T19:15:18.200 回答
2

现在是 2015 年 - 使用以下软件包之一:

  • 诗意:帐户-无密码
  • acemtp:accounts-passwordless

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

于 2015-12-05T09:27:31.823 回答