2015-06-22 53 views
0

我目前正在爲我自己的Apigility API構建一個前端客戶端。 該API使用OAuth 2.0身份驗證工作正常。OAuth 2.0隱式授權類型與AngularJS前端

我想創建一個AngularJS的LandingPage讓用戶輸入他們的憑據進行身份驗證。由於客戶端是使用JavaScript創建的,因此我不應該將client_secret保存在客戶端中,對嗎?

我已經閱讀了很多帖子,但仍然沒有正確的解決方案。 在此場景中使用隱式授權類型是否正確? 此過程正在工作,我正在重定向到身份驗證服務器, 在客戶端授權並輸入憑據後,我又回到了客戶端(經過身份驗證)。

但我不想重定向到另一個驗證頁面。 是否也可以在angularJS前端直接驗證並確保

感謝, 西蒙

+0

您必須將用戶重定向到身份驗證服務域。爲了安全起見,它需要是一個完整的頁面重定向,而不是一個iframe(並且許多登錄頁面都有邏輯從一個iframe中退出)。是的,隱含的贈款是你正在尋找的 –

+0

好的,我已經做到了。我正在使用AngularJS模塊oauth-ng。我也將應用程序設置爲html5mode。現在我遇到了問題,它不再從url中提取access_token。所以它不會被保存在本地或會話存儲中。我該如何解決這個問題? –

回答

0

你應該看看這個帖子我提出: https://stackoverflow.com/a/42443878/2963703 它詳細介紹瞭如何使用Spotify的API來做到這一點。您的頁面將不會被重定向,而是會打開一個彈出窗口,用戶在其中授權自己。一旦他們被授權,該窗口將自動關閉,並在您的主頁面中,您將擁有所需的訪問令牌。