- 情况1: 前端html等文件是经过OSROOM系统渲染, 响应回来的页面. 因为html经过了OSROOM服务器Jinjia2模板引擎渲染, 带上了随机生成的csrf_token 所以在html能获取到csrf_token, 具体使用如下教程
- 情况2.客户端为APP或小程序, 或者说html等静态文件不经过OSROOM, 独立隔离. 这时候就要使用JWT方式验证, 具体如下教程
获取与使用CsrfToken
每个经过OSROOM后端的html页面都会带上一个CsrfToken, 具体使用方式如下
- 使用Jinjia2语法获取
- 每一个Api的请求都需要带上CsrfToken, 作为验证令牌. 所以可以在html与间写入如下代码
- 浏览器F12可以看到我们写入的代码中的CSRFToken, 如图
使用说明
- SecretToken与AccessToken用于在无CsrfToken时, 调用API请求的一个客户端令牌, 以验证客户端是否为伪造的.
- SecretToken是长期可用验证令牌(除非你停用或者删除了它), 需要保存在客户端使用, 主要用于获取AccessToken.
- 为了减少SecretToken的暴露风险, 发送Api请求时, 尽量使用OSR-ClientId和AccessToken组合作为客户端验证令牌.
- 当没有获取过AccessToken或者AccessToken失效时, 请通过/api/token/access-token获取新的AccessToken (具体请查看/api/token/access-token文档).
- 获取AccessToken时, 只能使用SecretToken作为客户端令牌验证.(建议使用https)
获取AccessToken
然后GET请求/api/token/access-token获取一个新的AccessToken
- 请求时headers参数OSR-RestToken值为SecretToken为客户端令牌, 如图.
- 结果返回AccessToken和CliendId
- 如果请求/api/token/access-token的时候, 有带上OSR-CliendId, 则系统不会生成新的CliendId 如下图, 结果返回的CliendId和请求时带上的一样
请求API获取&修改数据
- headers参数OSR-RestToken值为AccessToken和参数OSR-CliendId值为CliendId
登录获取BearerToken
请求Api(/api/sign-in)获取BearerToken
- 和上面差不多, 也就多了一个headers参数OSR-BearerToken, 值为登录成功时获取的auth_token