Meteor客户端证书自动登录

时间:2017-04-25 08:47:28

标签: javascript meteor nginx certificate

我有一个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服务器将客户端的名称/证书信息转发给meteor
  4. meteor如果不存在则创建帐户,或者自动登录用户。
  5. 客户端登录,无需任何用户交互(提交客户端证书除外)
  6. 我正在阅读的所有内容都涉及用户从客户端代码登录,但我无法从服务器登录用户。我应该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您希望注册自己的登录处理程序,该处理程序返回userId,类似于https://github.com/fongandrew/meteor-login-as-user。我会说只是使用他们的包装,但我相信流星包装正在走向NPM。

此外,请确保在代理处删除了帽子HTTP标头,以便客户无法控制更改它...

相关问题