Meteor有一个loginWithToken
方法,用户对象中有resume
个标记。因此,可以使用loginWithToken
之一使用其中一个令牌登录。这很有效。
有没有办法生成新的登录令牌,还是应该使用简历令牌来创建快速登录链接?
答案 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)