网页授权登录

网页用户登录授权可打通帆书账号体系,可以获取到帆书用户的收藏内容,已购内容及用户的个人基本信息。

接入流程为以下三步:

  1. 引导用户进入授权页面同意授权,获取code

  2. 通过code换取授权access_token(与基础支持中的access_token不同)

  3. 通过网页授权access_token和client_id获取用户基本信息


1.引导用户进入授权页面同意授权,获取code

用户登录樊登授权网页
HTTP请求方式:get
https://card.dushu365.com/hybrid/auth?responseType=code&clientId=CLIENT_ID&redirectUri=REDIRECT_URI

参数说明

参数 是否必须 说明
clientId 第三方用户唯一凭证,appid
redirectUri 授权后重定向的回调链接地址
responseType 返回类型,请填写code

用户同意授权

用户同意授权之后,页面将跳转至 redirect_uri/?code=CODE

code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

错误返回码说明

返回码 说明
3001 redirect_uri域名与后台配置不一致
3002 此应用被封禁
3003 redirect_uri不能为空
3004 appid不能为空
3005 错误的appid

2.通过code换取授权access_token

*与基础支持中的access_token不同

首先请注意,这里通过code换取的是一个特殊的授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。应用可通过下述接口来获取网页授权access_token 和 openid。

尤其注意:由于应用的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续通过access_token获取用户信息等步骤,也必须从服务器发起。

HTTP请求方式:post
https://open-platform-test.dushu365.com/oauth1/fd/token?grant_type=authorization_code&code=CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET

参数说明

参数 是否必须 说明
client_id 第三方用户唯一凭证,即appid
client_secret 第三方用户唯一凭证秘钥,即appSecret
grant_type 填写为authorization_code

样例

正常返回样例
{
  "accessToken": "e1f21696-a9a6-4d0d-a8d4-fd8d1c44d7da",
  "expiresIn": 7199,
  "openid": "ZOGmm-EhjRAu750wR78V1m",
  "refreshToken": "9861eb64-3825-424e-bfba-115af5e8ef1b"
}
样例参数说明
参数 说明
accessToken 获取到的凭证
expiresIn 凭证有效时间(单位:秒)
openid 用户唯一标识
refreshToken 刷新的token
错误返回样例

错误时,返回JSON结果

{
    "error": "invalid_client",
    "error_description": "Bad client credentials"
}

该错误表明错误为无效的凭证,请检查请求的appId或appSecret的值是否正确。

样例参数说明
参数 说明
error 错误类型
error_description 错误描述

3.通过网页授权access_token和client_id获取用户基本信息

HTTP请求方式:get
access_token:
https://open-platform-test.dushu365.com/sns/userinfo?access_token=ACCESS_TOKEN&client_id=APPID

参数说明

参数 是否必须 说明
access_token 获取到的凭证,即第二步获取到的value
client_id 开发者账号APPID

样例

正常返回样例
{
    "data": {
        "feifanVip": ISVIP,
        "feifanVipEndTime": VIPENDTIME,
        "isVip": ISVIP,
        "nickname": NICKNAME,
        "headimgurl":HEADIMGURL,
        "openid": OPENID,
        "vipEndTime": VIPENDTIME
    },
    "msg": "操作成功!",
    "status": "0000",
    "systemMsg": "操作成功!",
    "systemTime": 1629360296482
}
样例参数说明
参数 说明
openid 用户唯一标识
nickname 昵称
headimgurl 头像图片地址
isVip 是否是会员
vipEndTime 会期到期时间
feifanVip 是否是非凡会员
feifanVipEndTime 非凡会期到期时间

4.通过refreshToken刷新access_token

HTTP请求方式:post
https://open-platform-test.dushu365.com/oauth1/fd/token?grant_type=refresh_token&refresh_token=94bc3507-e7ee-4708-b1b1-0c2f03dccb7d&client_id=xxxx
参数说明
参数 是否必须 说明
client_id 第三方用户唯一凭证,即appid
refresh_token 第二步获取的refresh_token
grant_type 填写为refresh_token

样例

正常返回样例
{
  "accessToken": "e1f21696-a9a6-4d0d-a8d4-fd8d1c44d7da",
  "expiresIn": 7199,
  "openid": "ZOGmm-EhjRAu750wR78V1m",
  "refreshToken": "9861eb64-3825-424e-bfba-115af5e8ef1b"
}
样例参数说明
参数 说明
accessToken 获取到的凭证
expiresIn 凭证有效时间(单位:秒)
openid 用户唯一标识
refreshToken 刷新的token

results matching ""

    No results matching ""