流星客户证书自动login



我有一个nginx服务器验证客户端CAC证书。Nginx然后转发(作为HTTP标头(客户端验证的用户名到我的流星应用程序。

在我的流星申请中,在服务器端,我有

Meteor.onConnection(function(conn) {
    // username = conn.httpHeaders['username-from-cert']
    // If user doesn't exist, call Accounts.createUser()
    // else <-- ISSUE HERE
})

我的问题是创建帐户后记录用户。我正在为客户端创建一个随机密码(因为nginx正在为我做我的身份验证(如何告诉客户端此密码,并且客户端自动登录?

目标:

  1. 用户提交客户证书
  2. 客户端连接到nginx服务器
  3. nginx服务器转发客户端的名称/cert-info到流星
  4. 流星如果不存在或自动登录用户创建帐户。
  5. 客户登录没有任何用户互动(提交客户端证书除外(

我正在阅读的所有内容都涉及从客户端代码登录的用户,但是我无法从服务器登录用户。我应该怎么做?

您需要注册自己的登录处理程序,该登录处理程序返回用户ID,类似于https://github.com/fongandrew/meteor-login-as-user。我想说的只是使用他们的包裹,但我相信流星套餐正朝NPM迈出。

另外,请确保HAT HTTP标头在代理处被剥离,以便客户无法控制更改它...

最新更新