簡體   English   中英

適用於JavaScript API客戶端的OAuth2流程

[英]Appropriate OAuth2 flow for JavaScript API client

閱讀最新的OAuth2草案,我不確定哪個流程適合我正在開發的客戶端-還是OAuth是否完全適合。 通過我們的API提供的數據不是特定於用戶的; 擁有憑據只會授予用戶訪問我們數據的權限。

我正在構建的JS客戶端將是一個公共頁面,不需要用戶進行身份驗證。 相反,“用戶”是JS客戶端本身。 也就是說,有一個專用帳戶用於該應用程序來訪問我們的API。

目前,我只是在添加帶有HTTP Basic憑據的Authorization標頭,這由於很多原因是很糟糕的。 最重要的是,任何人都可以輕松提取用戶名和密碼。

在這種情況下,我在OAuth草案中看到的最接近的匹配項是“隱式授權授予”,但似乎仍然需要操作用戶代理(網絡瀏覽器)的人員與頁面進行交互才能獲得訪問令牌。 例如,必須單擊一個按鈕,然后往返於auth服務器,然后再回到JS客戶端(通過redirect_uri )是不合適的。

另一方面,由於無法使用私鑰(因為它是JS),因此我無法想象如果不使用redirect_uri可以如何驗證客戶端。

有人可以讓我挺直嗎?

訪問令牌在URL片段中傳遞到您的redirect_uri。 您可以通過解析window.location.hash值來獲取它。

另一方面,由於無法使用私鑰(因為它是JS),因此我無法想象如果不使用redirect_uri,如何可以驗證客戶端。

隱式授予類型不對客戶端進行身份驗證。 在某些情況下,可以通過用於將訪問令牌傳遞給客戶端的redirct_uri驗證客戶端身份。 它依賴於資源所有者的存在(其憑證)和重定向URI的注冊。 此流程中需要redirect_uri。 一些SDK之所以說它是“可選的”,是因為它們具有默認配置,該配置通常與API服務所在的域相同,或者是在資源提供者上預先配置的。

暫無
暫無

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

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