2017-04-25 72 views
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正在爲我執行身份驗證)如何告訴客戶端此密碼並讓客戶端自動登錄?

目標:

  1. 用戶提交的客戶端證書
  2. 客戶端連接到nginx的服務器
  3. 的nginx服務器轉發客戶端的名稱/ CERT-信息流星
  4. 流星創建帳戶,如果不存在的,或自動登錄用戶。
  5. 客戶端登錄,在沒有任何用戶交互(除提交客戶端證書等)

一切我讀涉及用戶從客戶端代碼登錄,但我無法登錄從服務器的用戶。我應該如何去做這件事?

回答

1

您需要註冊您自己的登錄處理程序,它返回一個userId,類似於https://github.com/fongandrew/meteor-login-as-user。我會說只是使用他們的軟件包,但我相信流星軟件包正在向NPM邁進。

此外,請確保帽子的HTTP標頭被剝離出代理,以便客戶端無法控制更改它...