javascript - Meteor客户端证书自动登录

标签 javascript meteor nginx certificate

我有一个 nginx 服务器验证客户端 CAC 证书。然后,nginx 将客户端经过验证的用户名转发(作为 HTTP header )到我的meteor 应用程序。

在我的 meteor 应用程序中,在服务器端我有

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

我的问题是创建帐户后登录用户。我正在为客户端创建一个随 secret 码(因为 nginx 正在为我进行身份验证)我如何告诉客户端这个密码,并让客户端自动登录?

目标:

  1. 用户提交客户端证书
  2. 客户端连接nginx服务器
  3. nginx服务器将客户端的名称/证书信息转发给meteor
  4. 如果帐户不存在,meteor 会创建帐户,或者自动登录用户。
  5. 客户端无需任何用户交互即可登录(除了提交客户端证书)

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

最佳答案

您需要注册自己的登录处理程序,该处理程序返回 userId,类似于 https://github.com/fongandrew/meteor-login-as-user 。我会说只使用他们的包,但我相信随着 NPM 的发展,meteor 包正在退出。

此外,请确保在代理处删除 HTTP header ,以便客户端无法控制更改它...

关于javascript - Meteor客户端证书自动登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605795/

相关文章:

javascript - 如何在 Kendo UI Scheduler 控件中捕获空单元格单击事件

Javascript:将对象从一个数组移动到另一个数组:最佳方法?

javascript - 如何创建具有由数组元素命名的属性的对象

html - 长描述左侧的可能图像

nginx - 200 连接()到 unix :/tmp/uwsgi. socks 失败

javascript - 无论如何,我可以将鼠标悬停在电影剪辑上以自动播放我的电影吗?

javascript - Minimongo无法在客户端进行集合排序

javascript - 隐藏使用 Meteor.js 的迹象

c# - 关于使用 Nginx 将 Web 请求代理到基于 .Net HttpListener 的 Json 服务的想法

php - 工作的 docker 容器上的错误 500