我正在閱讀 Oauth 并了解對于基于瀏覽器的 Web 應用程式(傳統 Web 應用程式,而不是 SPA),當瀏覽器單擊按鈕登錄時,可以將 Web 服務器代碼配置為與將用戶重定向到的 Oauth 提供程式集成Oauth 提供者登錄頁面等等。最終,Web 服務器從 Oauth 提供者那里接收到令牌。此令牌可以由 Web 服務器傳遞給資源服務器以進行授權訪問。
如果最終用戶使用的是本機移動應用程式,那么必須直接從應用程式到 Oauth 提供者進行集成,最好是通過 pkce。移動應用程式接收到令牌,然后可以將令牌傳遞到資源服務器 api 以對資源進行授權訪問。
我只是想知道為什么基于 Web 瀏覽器的應用程式和本機移動應用程式的技術不同?
是否有一種方法可以將第 1 段中的技術用于原生移動應用程式,將第 2 段中的技術用于基于瀏覽器的應用程式?
uj5u.com熱心網友回復:
兩者之間的主要區別在于,Web 應用程式可以擁有“秘密”,而原生應用程式則不能。
這意味著在 Web 應用程式的情況下,對于“主”OAuth 流程至關重要的client_secret可以安全地存盤在后端配置中的某個位置,而本機應用程式不能擁有:所有應用程式代碼都正在下載和因此必須包含上面提到的可以從 .apk 檔案中提取的client_secret 。請注意,這個問題在 SPA 風格的 Web 應用程式中很普遍。
PKCE 為客戶端提供了在運行時生成client_secret的可能性,這確保了它們的完整性。
至于您是否可以在主要(授權授予)流程中使用 PKCE,您絕對可以。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/424356.html
上一篇:setLoginUser不是函式
