簡體   English   中英

作為前端 javascript 開發人員的登錄驗證問題,,,

[英]login-auth question as a frontend javascript developer,,,

當多個服務器用於同一站點並且請求可能 go 到同一用戶的任何服務器時,應使用哪種類型的登錄方法?

選項:

  1. 基於cookie的登錄
  2. 基於會話的登錄
  3. JWT 基於登錄
  4. 基於2FA的登錄

a) 基於 cookie 的登錄

不好的選擇,cookie 只是 session 的另一種類型,請參閱 session

b) 基於 session 的登錄

不好的選擇,只是壽命較短的 cookie(當用戶關閉 window 會話被終止時,cookie 不會)。 您需要一個中心 session 緩存服務器來了解某人是否經過身份驗證。 並且這個緩存服務器在你所有的服務器上,所以他們可以判斷這個session,如果服務器在不同的域,你需要同時為多域設置cookie(這只對子域有效,你不能設置cookie對於另一個頂級域,當然有解決方法,例如 api 設置 cookie 或 javascript 從該域讀取 cookie 並在該域中使用)。 這種方式(cookie/session)很容易理解,但你看到中心會導致延遲,設置 cookies 或代理 cookies 和 javascript 非常繁瑣

c) 基於 JWT 的登錄

首選,您只需對所有服務器使用相同的密鑰,獲得令牌並知道他是誰

d) 基於 2FA 的登錄

這是為了安全,不是為了 apis 中的身份驗證,密碼總是會改變,你需要另一個設備來知道當前的 pass,如果你願意,你可以使用 2FA 來保護其他方法。 我想也許你的意思是OAuth

e) OAuth

比 cookie 更好且標准化的方法,但通常此身份驗證服務器只負責身份驗證,並且不會在其中干預太多其他事情,因為您的 api 從用戶那里獲取令牌並詢問身份驗證服務器他是誰

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM