簡體   English   中英

Laravel Passport vs JWT vs Oauth2 vs Auth0

[英]Laravel Passport vs JWT vs Oauth2 vs Auth0

對 Laravel 中的 API 身份驗證類型感到困惑?

我目前正在學習如何在 Laravel 中創建 API,我發現自己陷入了這個令人困惑的概念中。 經過幾天的研究和實踐,我終於可以理解這些概念來制作迷你指南。 我不得不查看許多單獨的網頁,因此我將盡最大努力解釋它們之間的關系。

這些是什么概念?

  • Passport是一個官方的 Laravel 包,它實現了 Oauth2 和 JWT。
  • Auth0是一種身份驗證和授權服務。 它是 API 身份驗證的“一體化”解決方案。 它默認實現 JWT 並且可以實現 Oauth2 以及許多其他協議
  • OAuth2 是一種授權框架或協議,它使應用程序(您將要構建的應用程序)能夠對用戶帳戶(如 Facebook、GitHub 等進行有限訪問……想象一下,您的應用程序變得足夠大以提供“登錄使用 APP NAME HERE”或為其他第三方應用程序提供對您的用戶帳戶的有限訪問權限。 使用 Oauth2,您可以在許多其他方面實現這一目標。
  • JWT是一種令牌格式。 換句話說,就是如何安排數據以創建令牌。 另一種令牌格式是 SWT。

換句話說:

  • Passport 實現 -> Oauth2 和 JWT。
  • Auth0 可以實現 -> Oauth2 或許多其他協議,如 LDAP、OPEN ID 等...
  • Oauth2 可以實現 -> JWT 或其他令牌格式,如 SWT...

你應該用什么?

對於初學者來說,創建自己的與 Laravel 兼容的 Oauth2 實現不僅會很瘋狂,而且很有可能,如果您正在閱讀本文,是因為您不完全了解 Oauth2 的所有復雜性。 Oauth2 出來了。 我們所指的只是三個包裝選項。 Passporttymondesigns/jwt-authAuth0

在繼續之前,讓我注意,當我提到“JWT”或“普通 JWT”時,我真正指的是tymondesigns/jwt-auth包。 真正的匹配發生在 Auth0、Passport 和普通 JWT 之間……

與 Passport 和 JWT 相比, Auth0是一把瑞士軍刀。 這把刀是一個多合一的解決方案。 它可以自己做很多事情,加上一些你可能永遠不需要的額外功能,而不依賴於 Laravel 或其他框架。 為了不延長它太長,我只想說它可以做任何你可以想象的 API 初學者。 此外,您將擁有一個非常好的開箱即用的儀表板,它允許您管理 API 的所有方面。 從第三方身份驗證到添加更多可以使用該 API 的應用程序(移動、網絡、桌面)。

護照可以比作一把更精致的刀。 它的創造者知道它將切割什么,並專門為這些任務設計它。 換句話說,它是專門為 Laravel 構建的,它可以順利和完美地工作,而不會受到許多花里胡哨的困擾。 但是,請不要忘記,從長遠來看,您可以在其上實現自己的代碼。 就像一個漂亮的自定義儀表板來管理您的 API 客戶端。

最后,回到刀的比喻,我喜歡將JWT與鋒利的刀片進行比較,沒有任何花哨的附加功能。 它重量輕、功能強大、安全可靠,並能勝任。 您獲得的好處是您不必擔心其他軟件包添加的所有額外內容。 此外,由於其靈活性,您可以隨心所欲地升級這把刀,如果您需要更重的升級,甚至可以切換到另一個包。

結論

這取決於你,如果你想削減所有可能扔給你的東西並留在 API 世界中而不是在 Laravel (Auth0) 中,縮小到 Laravel 和 Oauth2 的第三方身份驗證(Passport)的重點,或者有一個通過 API (JWT) 開箱即用的基本安全數據傳輸。 是的...您還可以使用其中三個將您的應用程序鏈接到您的移動應用程序。

我個人更喜歡 Passport 因為:

  • 我喜歡使用官方的 Laravel 包。
  • 除了添加到我的項目中的許多額外路由和表外,其性能不會受到影響。
  • 如果我從最基本的 API 身份驗證開始並想要擴展,那會容易得多。
  • 使用 Laravel 包的舒適度。

還是說最后一點,可能有人會說Auth0社區小。 它基本上是,但它也有很棒的客戶支持人員。


Passport 和 Oauth2 教程

Laravel 和 Oauth2 Docs 對令牌的解釋可能有點困難。 這是Passport 的(因此是 Oauth2)不同類型的令牌及其用例的一個很好的解釋 由於我無法弄清楚教程的“路線”部分,因此我不推薦教程部分。

這是一個很好的 Passport 視頻教程,它也使用 PostMan Chrome 應用程序進行 API 調用。 對於那些不熟悉這個 API 的人來說,像 PostMan 這樣的應用程序會讓你的工作比使用“curl”Linux/Mac 命令容易得多。 您可以觀看完整系列或僅觀看 Passport 部分。 目前我被困在視頻 4 上。這是我的Stack Overflow 問題

資源

許多資源都在文章上面展開,但我在這里也有一些。

暫無
暫無

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

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