簡體   English   中英

node.js REST api身份驗證和oauth2

[英]node.js REST api authentication and oauth2

我有幾個問題:

1)對於外部API使用和作為主干(或普通js)前端的服務器端,使用REST API是一個好習慣嗎? 我認為編寫一個REST API服務器並將其用作后端要容易得多。

2)如果我使用oauth 2標准編寫我的webapp身份驗證,這是將我的秘密令牌存儲在cookie中的好方法嗎? 我認為這會導致CSRF漏洞。

正如我所看到的,passport.js使用cookie存儲秘密令牌,例如Facebook或Twitter ......在這種情況下,CSRF是什么?

這是一個非常有趣的問題,我很驚訝沒有人回答。

1)對於第一個問題,我的回答肯定是肯定的 您不希望編寫2次API邏輯。

您可以做的是使用不同的URL。

例如。 對於公共API,您使用http://api.domain.com/objects/而關於內部API,您可以使用http://domain.com/api/objects/或您喜歡的任何內容。

然后使用相同的邏輯,但使用不同的身份驗證策略。 公共的一個具有身份驗證令牌,像許多流行的API(Twitter,Facebook等)和私人的使用passport.js的日志。

分離的好處是:

  • 您分開了安全問題
  • 如果您的應用程序傳輸了大量數據,您可以控制訪問帶寬(並且您希望為您的應用程序提供更高的優先級......很可能!)
  • 或者只是你可以控制授權(例如,沒有通過公共API刪除)

2)我不是安全大師,但我肯定會信任passport.js身份驗證系統,因為它在將節點用作后端時被廣泛使用。

你可以參考這個問題來實現快遞中的CSRF安全性: 如何使用express.js在Ajax調用中實現CSRF保護(尋找完整的例子)?

或者,如果您使用FB或Twitter連接策略,則另一種策略是使用刷新令牌。

希望能幫助到你。

暫無
暫無

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

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