详情
订阅
  • 首页
  • 产品
  • 解决方案
  • 文档&开发者
  • 价格体系
  • 合作伙伴
联系我们
用户手册
GraphQL API
APIJson
Restful API
Code Example

APIJSON是一种专为API而生的JSON网络传输协议,以及基于这套协议实现的对象关系映射库。

授权

使用APIJSON查询或者更改需要API令牌,MassCMS允许您为每个项目设置一个或多个API令牌。

生成 API 令牌

在MassCMS系统中,设置-项目设置-API访问中可创建API令牌。单个项目可创建多个API令牌,可针对不同的使用场景设置不同的权限。

生成API令牌时令牌内容只出现一次,确保正确保存令牌内容,生成后无法再次看到。

API令牌分为只读和所有权限两个权限,生成时可根据使用需求,选择合适的权限。

接口鉴权

API令牌用于控制对查询和更改内容的访问,API令牌必须通过http请求头传递。请求格式如下:

其中CALLS-SIDE的值为当前项目的AppId和当前时间的时间戳经CBC模式AES加密后的字符串,APITOKEN的值为MassCMS系统中创建的api令牌和当前时间时间戳经CBC模式AES加密后的字符串。

AES加密所用的key123456789MASSCMS,密钥偏移量ivTRUEKEY123456789

示例代码如下:

const key = CryptoJS.enc.Utf8.parse('123456789MASSCMS')
//十六位十六进制数作为密钥偏移量
const iv = CryptoJS.enc.Utf8.parse('TRUEKEY123456789')
// 在发送请求之前做些什么
let CALLSSIDE = JSON.stringify({
  openApiStatus: true,
  projectAppId: 'Pxxxxx', //此处请填写项目实际使用的AppId
  timestamp: Date.now(),
})
let callssideSrcs = CryptoJS.enc.Utf8.parse(CALLSSIDE)
let callsside = CryptoJS.AES.encrypt(callssideSrcs, key, {
  iv: iv,
  mode: CryptoJS.mode.CBC,
  padding: CryptoJS.pad.Pkcs7,
})
let APITOKEN = JSON.stringify({
  apiToken:'xxxxxxxx',//此处请填写项目实际生成的API令牌
  timestamp: Date.now(),
})
let apitokenSrcs = CryptoJS.enc.Utf8.parse(APITOKEN)
let apitoken = CryptoJS.AES.encrypt(apitokenSrcs, key, {
  iv: iv,
  mode: CryptoJS.mode.CBC,
  padding: CryptoJS.pad.Pkcs7,
})

config.headers['CALLS-SIDE'] = callsside.ciphertext.toString().toUpperCase()
config.headers['API-TOKEN'] = apitoken.ciphertext.toString().toUpperCase()

    APIJSON是一种专为API而生的JSON网络传输协议,以及基于这套协议实现的对象关系映射库。

    授权

    使用APIJSON查询或者更改需要API令牌,MassCMS允许您为每个项目设置一个或多个API令牌。

    生成 API 令牌

    在MassCMS系统中,设置-项目设置-API访问中可创建API令牌。单个项目可创建多个API令牌,可针对不同的使用场景设置不同的权限。

    生成API令牌时令牌内容只出现一次,确保正确保存令牌内容,生成后无法再次看到。

    API令牌分为只读和所有权限两个权限,生成时可根据使用需求,选择合适的权限。

    接口鉴权

    API令牌用于控制对查询和更改内容的访问,API令牌必须通过http请求头传递。请求格式如下:

    其中CALLS-SIDE的值为当前项目的AppId和当前时间的时间戳经CBC模式AES加密后的字符串,APITOKEN的值为MassCMS系统中创建的api令牌和当前时间时间戳经CBC模式AES加密后的字符串。

    AES加密所用的key123456789MASSCMS,密钥偏移量ivTRUEKEY123456789

    示例代码如下:

    const key = CryptoJS.enc.Utf8.parse('123456789MASSCMS')
    //十六位十六进制数作为密钥偏移量
    const iv = CryptoJS.enc.Utf8.parse('TRUEKEY123456789')
    // 在发送请求之前做些什么
    let CALLSSIDE = JSON.stringify({
      openApiStatus: true,
      projectAppId: 'Pxxxxx', //此处请填写项目实际使用的AppId
      timestamp: Date.now(),
    })
    let callssideSrcs = CryptoJS.enc.Utf8.parse(CALLSSIDE)
    let callsside = CryptoJS.AES.encrypt(callssideSrcs, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7,
    })
    let APITOKEN = JSON.stringify({
      apiToken:'xxxxxxxx',//此处请填写项目实际生成的API令牌
      timestamp: Date.now(),
    })
    let apitokenSrcs = CryptoJS.enc.Utf8.parse(APITOKEN)
    let apitoken = CryptoJS.AES.encrypt(apitokenSrcs, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7,
    })
    
    config.headers['CALLS-SIDE'] = callsside.ciphertext.toString().toUpperCase()
    config.headers['API-TOKEN'] = apitoken.ciphertext.toString().toUpperCase()