gpt4 book ai didi

meteor - 在服务器端登录用户帐户

转载 作者:行者123 更新时间:2023-12-04 22:19:45 25 4
gpt4 key购买 nike

假设我有一个名为 connectServer 的方法在服务器端:

Meteor.methods({
connectServer: function(data) {
<check if connection has valid data.accessToken from RESTful end point>
if (valid) {
var userId = Accounts.createUser({"email": data.email});
this.setUserId(userId);
}
}
});

这种方法的问题在于它似乎不会在服务器上触发任何“登录连接”操作。我目前正在使用 meteor-user-status和事件 UserStatus.events.on("connectionLogin", function(fields) { ... }) this.setUserId(userId) 时不调用已更新。有什么办法可以在服务器上手动触发“登录连接”操作?谢谢。

注意:我没有使用 Meteor 的客户端,所以我想在服务器端执行此操作。

最佳答案

看着code ,你可以发出 connectionLogin事件:

UserStatus.events.emit("connectionLogin", {
userId: userId
connectionId: connection.id
ipAddr: connection.clientAddress
userAgent: connection.httpHeaders['user-agent']
loginTime: date
});

似乎是一件可以做的事情,但请记住,如果包更新并且某些内容发生更改,您的代码可能会在您不注意的情况下中断。

下一个将手指伸入的位置是 Accounts包(因为 meteor-user-status 使用 Accounts.onLogin() 方法),但是我查看了它并找不到一种简单的方法来做到这一点。

您的最后一个选择是在客户端登录用户。您可以做的是生成一个 token 并允许客户端使用此 token 登录。例如:

// Server method
Meteor.methods({
connectServer: function(data) {
<check if connection has valid acess token>
if (valid) {
var userId = Accounts.createUser({"email": data.email});
var stampedLoginToken = Accounts._generateStampedLoginToken();
Accounts._insertLoginToken(userId, stampedLoginToken);
return stampedLoginToken;
}
}
});
// Client
Meteor.call('connectServer', function(error, result){
if(!error) Meteor.loginWithToken(result.token);
});

关于meteor - 在服务器端登录用户帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34085553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com