开放平台-用户授权
只有需要真实京东用户授权时才需要走此流程,判断自己申请的接口是否需要用户授权,方法如下#
如下图接口文档所示,如果公共参数access_token为必填时,必须先进行用户授权流程,非必填时则不需要进行用户授权。#

一. 前期准备#
京东健康-开放平台授权系统基于 OAuth2.0 协议标准构建,支持 JOS 网关接口授权调用及京东账号联合登录功能。对接前需完成以下准备:
- 注册开发者账号:在京东开放平台注册开发者账号。
- 应用审核:拥有一个已审核通过的应用,并获得相应的 AppKey 和 AppSecret。
- 自动获取凭证:应用审核通过后自动获取 AppKey 与 AppSecret。
二. 授权流程说明#
京东授权流程基于 OAuth2.0,允许京东用户使用京东身份安全登录第三方应用或服务。授权流程支持 authorization_code 模式,具体步骤如下:
- 发起授权请求:第三方应用发起京东授权请求,用户允许授权后,京东会重定向到第三方应用网站,并带上授权临时票据 code 参数。
- 获取 access_token:通过 code 参数、 AppID 和 AppSecret,调用 API 换取 access_token。
- 接口调用:使用 access_token 进行接口调用,获取用户基本数据资源或实现基本操作。
- 企业 API 对接:若为企业 API 对接,可使用应用创建账号手动发起步骤 1 和 2,并定时刷新 access_token 有效期,避免接口调用失败。
三. 调用示例#
1. 请求 code#
请求示例:
https://open-oauth.jd.com/oauth2/to_login?app_key=XXXXX&response_type=code&redirect_uri=XXXXX&state=20180416&scope=snsapi_base参数说明:
| 参数 | 是否必须 | 说明 |
|---|---|---|
| app_key | 是 | 应用标识 |
| response_type | 是 | 固定为 code |
| redirect_uri | 是 | 回调地址,必须与开发者控制里的 URL 保持一致 |
| scope | 是 | 应用的作用域(snsapi_base 或 snsapi_union_login) |
| state | 否 | 用于保持请求和回调的状态,建议带上该参数以防止 CSRF 攻击 |
返回说明:
- 用户允许授权后,重定向到指定的 redirect_uri,并添加 code 和 state 参数。
- 若用户禁止授权,仅带上 state 参数。
2. 通过 code 获取 access_token#
请求示例:
https://open-oauth.jd.com/oauth2/access_token?app_key=XXXXX&app_secret=XXXXX&grant_type=authorization_code&code=XXXXX参数说明:
| 参数 | 是否必须 | 说明 |
|---|---|---|
| app_key | 是 | 应用标识 |
| app_secret | 是 | 应用密钥 |
| grant_type | 是 | 固定为 authorization_code |
| code | 是 | 步骤 1 中获取的 code |
返回说明:
{ "access_token": "a3207b6b5ad04249ad1dbf6a98248bea", "expires_in": 3600000, "refresh_token": "4ecbbab0e9e443159c518da1d10741ad", "scope": "snsapi_base", "open_id": "jos_dev"}返回参数说明:
| 参数 | 说明 |
|---|---|
| access_token | 接口调用令牌 |
| expires_in | 令牌有效时间,单位秒 |
| refresh_token | 用户刷新 access_token |
| scope | 用户授权的作用域,逗号分隔 |
| open_id | 授权用户唯一标识 |
错误返回样例:
{"code":40029,"msg":"invalid code","uid":"xxxxxx"}3. 刷新 access_token 有效期#
请求示例:
https://open-oauth.jd.com/oauth2/refresh_token?app_key=XXXXX&app_secret=XXXXX&grant_type=refresh_token&refresh_token=XXXXX参数说明:
| 参数 | 是否必须 | 说明 |
|---|---|---|
| app_key | 是 | 应用标识 |
| app_secret | 是 | 应用密钥 |
| grant_type | 是 | 固定为 refresh_token |
| refresh_token | 是 | 步骤 2 或前一次步骤 3 获取的 refresh_token |
返回说明:
{ "access_token": "a3207b6b5ad04249ad1dbf6a98248bea", "expires_in": 3600000, "refresh_token": "4ecbbab0e9e443159c518da1d10741ad", "scope": "snsapi_base", "open_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}返回参数说明:
| 参数 | 说明 |
|---|---|
| access_token | 接口调用令牌 |
| expires_in | 令牌有效时间,单位秒 |
| refresh_token | 用户刷新 access_token |
| scope | 用户授权的作用域,逗号分隔 |
| open_id | 授权用户唯一标识 |
错误返回样例:
{"code":40029,"msg":"invalid code","requestId":"xxxx"}