Express 检测是否有人从常规Node.js应用程序登录Meteor

Express 检测是否有人从常规Node.js应用程序登录Meteor,express,meteor,Express,Meteor,有没有办法让我检查一下,看看是否有人是从流星外部登录到流星的;例如,从Express.js应用程序?我想从Express应用程序中知道当前登录的用户在某个特定客户端上是谁,这样,如果调用了API,我们就可以知道将API调用的结果应用到谁身上。因此最好分两部分来完成 在meteor中检查用户是否在线的方法 Meteor.methods({ 'isonline: function(id) { return Meteor.users.find(id).profile.onli

有没有办法让我检查一下,看看是否有人是从流星外部登录到流星的;例如,从Express.js应用程序?我想从Express应用程序中知道当前登录的用户在某个特定客户端上是谁,这样,如果调用了API,我们就可以知道将API调用的结果应用到谁身上。

因此最好分两部分来完成

在meteor中检查用户是否在线的方法

Meteor.methods({
    'isonline: function(id) { 
        return Meteor.users.find(id).profile.online;
    }
}
您可能可以使用meteor智能包()来实现这一点:

确保您已经通过
npm安装meteorite-g安装了

在您的套餐回购中使用:
mrt在线添加配置文件

使用Express访问meteor的数据

要访问Express中的内容,您需要一个DDP客户端,我知道这个客户端与pre1(的版本)配合使用:

你可以有一个方法来检查你在流星

服务器js(流星)

Express:

var client = new DDPClient({
    host: "localhost",
    port: 3000
});

userid = '1' //The user _id of the person you want to check
client.connect(function () {
   console.log("Connected to Meteor at localhost:3000");
   client.call("isonline", [userid], function(err,result) {
        client.close();
            if(!err) {
                if(result) {
                    console.log("User " + userid + " is online");
                }
                else
                {
                    console.log("That user isn't online");
                }
            }
            else
            {
                console.log(err)
            }
   });
});

我本应该进一步澄清这个问题的。我想检查是否有人从Meteor以外的应用程序在当前客户端登录Meteor。此Express应用程序希望检查Meteor中当前登录用户的用户ID,如果没有,则为空。请进一步澄清我在从Meteor之外的应用程序登录当前客户端时有点迷失,如何在Meteor之外登录?你不是在收留我吧?假设你登录了Meteor。现在,您希望在Meteor上执行一些任务,这些任务需要调用与Meteor分离的RESTAPI。然而,RESTAPI服务器需要知道Meteor的哪个用户正在发出请求。RESTAPI如何知道用户是谁?假设RESTAPI可以访问Meteor正在访问的MongoDB实例,并且能够对Meteor进行DDP调用。那么您想知道特定客户端的当前登录用户是谁?您当前使用什么方法来识别客户机?通过改变meteor方法,我们可以使用meteor.userID()根据电子邮件身份验证来确定它。