ORCID 集成使用“3legged 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 请求中。