认证接口

1.  接口描述

访问任何接口API之前必须调用认证接口,生成用于身份验证的Token。

各个API的调用都需要进行身份认证,每次访问都需要在 Header 里加一个AccessToken,下面将说明如何获取和刷新这个Token。

2.  生成AccessToken

请求URL: https://eln.iphy.ac.cn:61262/tokens
https://eln.iphy.ac.cn:61263/matelab/index.php?do=tokens&action=tokens(已废弃)
https://in.iphy.ac.cn/open/tokens2.php(已废弃)

请求方式: POST

POST 内容
username: 用户名
password: 密码

Header
Content-Type: application/x-www-form-urlencoded

返回信息

errcode 错误代码;
  • 0: 登录成功;
  • 1: 登录错误。
userid 用户ID;
realname 用户姓名;
email 用户 Email 信息;
avatar 用户头像 URL 地址;
access access Token,用于以后的身份验证操作。有效时间60分钟;
  • token: 用于验证的 token;
  • expiredAt: 过期时间,为到1970-1-1的秒数;
refresh 刷新 token,可在 accessToken 失效后用此刷新Token调用刷新接口获得可用Token。有效时间24小时;
  • token: 用于刷新的 token;
  • expiredAt: 过期时间,为到1970-1-1的秒数;
errmsg 错误信息。

登录成功示例

{
    "code": 0,
    "userid": 94,
    "realname": "张三",
    "email": "aaa@iphy.ac.cn",
    "avatar": "https://in.iphy.ac.cn/a.png",
    "access": {
        "token": "1128773d4aa9fc2686a7fe098b681561c7aeb829371",
        "expiredAt": 1650945901000
    },
    "refresh": {
        "token": "112b829371686a7fe09aa9fc281561c7a8773d4e8b6",
        "expiredAt": 1650945901000
    }
}

登录失败示例

{
    "code": 1,
    "msg": "用户名或密码错误"
}

3.  刷新AccessToken

其中access中的token是后续需要的,expiredAt字段是该Token的失效时间,默认从生成有效期是30分钟。refresh是刷新token,可在accessToken失效后刷新

请求URL: https://eln.iphy.ac.cn:61262/tokens/tokens_refresh

请求方式: POST

POST 内容
refresh_token: refreshToken

Header
Content-Type: application/x-www-form-urlencoded

返回信息

code 错误代码;
  • 0: 获取成功;
  • 1: 获取错误。
access 新的 access Token。有效时间60分钟;
  • token: 新的用于验证的 token;
  • expiredAt: 过期时间,为到1970-1-1的秒数;
refresh 新的刷新 token,旧的 refresh Token 失效。有效时间24小时;
  • token: 新的刷新 token;
  • expiredAt: 过期时间,为到1970-1-1的秒数;
msg 错误信息。

返回值示例

{
    "code": 0,
    "access":
    {
        "token": "112aa9fc281561c7a8773d4eb829371686a7fe098b6",
        "expiredAt": 1650945901000
    },
    "refresh":
    {
        "token": "1124eb829371686a7fe091b6aa9fc281561c7a8773d",
        "expiredAt": 1650945901000
    },
}

失败示例

{
    "code": 1,
    "msg": "无效 refresh token"
}