[英]Laravel Passport vs JWT vs Oauth2 vs Auth0
我目前正在學習如何在 Laravel 中創建 API,我發現自己陷入了這個令人困惑的概念中。 經過幾天的研究和實踐,我終於可以理解這些概念來制作迷你指南。 我不得不查看許多單獨的網頁,因此我將盡最大努力解釋它們之間的關系。
換句話說:
對於初學者來說,創建自己的與 Laravel 兼容的 Oauth2 實現不僅會很瘋狂,而且很有可能,如果您正在閱讀本文,是因為您不完全了解 Oauth2 的所有復雜性。 Oauth2 出來了。 我們所指的只是三個包裝選項。 Passport 、 tymondesigns/jwt-auth和Auth0 。
在繼續之前,讓我注意,當我提到“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 因為:
還是說最后一點,可能有人會說Auth0社區小。 它基本上是,但它也有很棒的客戶支持人員。
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.