ORCID 集成使用“3 legged OAuth”來驗證用戶並請求與他們的記錄交互的權限。 任何集成都可以使用公共 API 請求讀取權限。 ORCID 會員可以使用會員 API 請求更新權限。 它是這樣工作的:
- 您創建了一個特殊鏈接
- 單擊時,用戶將被發送到 ORCID
- ORCID 要求用戶登錄
- ORCID 要求用戶授予您的應用程序權限
- ORCID 使用授權碼將用戶發送回您的系統
- 您的系統將該代碼交換為訪問令牌
定制的授權 URL 包括您的客戶信息,以及指定您希望訪問的他們記錄的特定區域的“範圍”。 登錄後,用戶授權與您的系統連接,並與授權代碼一起返回到您的登錄頁面。 然後使用此代碼獲取他們的 ORCID iD 以及對請求的範圍有效的訪問令牌。
建立授權鏈接並獲取授權碼
您可以透過指定 API 憑證的用戶端 ID 和關聯的登入頁面(重定向 URI)來建立授權連結。您可以透過設定來選擇請求哪些權限 範圍參數.
下面的示例請求讀取限制訪問數據的權限 ORCID 沙盒測試服務器。 在現實世界中,您會在您的網站上顯示此鏈接,或者在要求用戶進行身份驗證和授權時將其包含在電子郵件中。 但是,出於測試目的,您可以簡單地將其粘貼到您的網絡瀏覽器中。 用您的客戶信息替換括號中的數據,並確保刪除方括號!
https://sandbox.orcid.org/oauth/authorize?client_id=[Your client ID]&response_type=code&scope=/read-limited&redirect_uri=[Your landing page]
一個用戶點擊了鏈接,登錄於 ORCID 並授予權限,他們將被重定向回您的網站,如下所示:
https://[Your landing page]?code=Q70Y3A
交換授權碼 ORCID iD 和訪問令牌
您應該立即交換授權碼 ORCID iD 和訪問令牌。 授權碼在使用時過期。 請求看起來像這樣 不能在網絡瀏覽器中製作,它必須由您的服務器製作。
URL=https://sandbox.orcid.org/oauth/token
HEADER: Accept: application/json
HEADER: Content-Type: application/x-www-form-urlencoded
METHOD: POST
DATA:
client_id=[Your client ID]
client_secret=[Your client secret]
grant_type=authorization_code
code=Six-digit code
redirect_uri=[Your landing page]
ORCID 然後將返回研究人員的認證 ORCID iD 和一個 JSON 格式的訪問令牌:
{"access_token":"f5af9f51-07e6-4332-8f1a-c0c11c1e3728","token_type":"bearer",
"refresh_token":"f725f747-3a65-49f6-a231-3e8944ce464d","expires_in":631138518,
"scope":"/read-limited","name":"Sofia Garcia","orcid":"0000-0001-2345-6789"}
默認情況下,訪問令牌是長期存在的,並在發行後 20 年到期。 令牌在到期前可以多次使用。
使用訪問令牌
三足訪問令牌鏈接到特定的 ORCID 記錄。 要使用它們,您可以將它們包含在您為讀取或更新該記錄而發出的 API 請求中。