首页 文章

Meteor客户端证书自动登录

提问于
浏览
0

我有一个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正在为我进行身份验证)如何告诉客户端此密码,并让客户端自动登录?

目标:

  • 用户提交客户端证书

  • 客户端连接到nginx服务器

  • nginx服务器将客户端的名称/ cert-info转发给meteor
    如果不存在,

  • meteor会创建帐户,或者自动登录用户 .

  • 客户端登录,没有任何用户交互(提交客户端证书除外)

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

1 回答

  • 1

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

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

相关问题