2017-03-20 72 views
0

我想連接我的angular2前端應用程序與symfony後端。所以我使用FOSOAuthServerBundle(https://github.com/FriendsOfSymfony/FOSOAuthServerBundle)授權我的前端應用程序,但我不明白如何實現這一點。Angular2和symfony3 FOSOAuthServerBundle授權

  1. 我試過「令牌」端點方法,但是我不得不從我的angular2應用程序發送client_id和client_secret。我認爲公開存儲client_secret是不好的。

  2. 「授權」端點不使用client_secret,但要求登錄表單,對我的情況有什麼不好。

  3. 我試過自定義授權擴展,但是FOSOAuthServerBundle也需要使用client_secret驗證客戶端。

什麼是最好的做法授權與symfony angular2?在前端存儲client_secret可以嗎?還是應該擴展FOSOAuthServerBundle並刪除client_secret檢查?

+0

需要更多信息。代碼片段如果可能的話。 –

+0

如果FOSOAuthServeBundle不符合SPA要求,我希望搜索另一個捆綁軟件,並發現使用Symfony進行SPA驗證的相當不錯的解決方案:https://github.com/lexik/LexikJWTAuthenticationBundle – Emptyhand

回答

1

您對client_secret的描述是正確的。更廣泛地發佈密鑰並不是有效的做法。

很抱歉,此刻FOSOAuthBundle不適合您的需求。該捆綁僅關注後端OAuth客戶端。他們在github上懸而未決的問題,以增加公衆的支持客戶:https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/issues/266

有一點要澄清有關令牌&授權端點 - 令牌和授權端點在訪問你的資源的過程中進行混合。我建議您閱讀整個RFC以瞭解使用OAuth進行授權的過程:https://tools.ietf.org/html/rfc6749

+0

感謝您的答覆!你能告訴我什麼symfony捆綁我應該用於我的案例認證(公共客戶端/ JavaScript)? – Emptyhand

+0

不幸的是,沒有很多提供OAuth服務器的軟件包。根據我的經驗,沒有任何針對Symfony的軟件包允許使用公共客戶端。我正在使用這個軟件包來進行我的應用程序https://packagist.org/packages/bshaffer/oauth2-server-php的調整。 –

+0

如果我擴展FOSOAuthServerBundle並跳過client_secret驗證,解決方案如何?它會錯嗎? :) – Emptyhand