手册手册
  • 鉴权

鉴权

1. 简介

鉴权 用于获取和管理访问令牌,以便访问需要认证的 API 接口。

2. 鉴权

2.1 获取 API Key

获取 API Key

2.2 使用 API Key 生成 Access Token

请求

  • 方法: POST
  • 路径: https://api.nuwaai.com/web/apiKey/auth
  • 消息体:
{
  "secretKey": "{apikey}"
}

参数说明

参数名称类型是否必填参数说明
apikeyString是API 密钥中生成的 key

响应

{
  "code": {code},
  "msg": {message},
  "data": {data}
}
参数名称类型是否必填参数说明
codeint是响应码:0 为 ok,其他为错误,具体错误 message
messageString否当响应码为 0 时返回。具体错误原因
dataString是当响应码为 0 时返回。返回内容为 access_token
示例
const secretKey = 'sk-jqZ-gBPcRCG1nLpaenmS1gew7rcCkIs-NUWSPzpd3DeWYxobM_CHm-uPTCa8gDPv';

fetch('https://api.nuwaai.com/web/apiKey/auth', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    secretKey: secretKey,
  }),
})
  .then(res => res.json())
  .then(data => {
    if (data.code === 0) {
      console.log('token:', data.data);
      localStorage.setItem('token', data.data);
    } else {
      console.error('请求失败:', data.msg);
    }
  })
  .catch(error => {
    console.error('请求出错:', error);
  });
import Foundation

func getAccessToken() {
    let secretKey = "sk-jqZ-gBPcRCG1nLpaenmS1gew7rcCkIs-NUWSPzpd3DeWYxobM_CHm-uPTCa8gDPv"
    let url = URL(string: "https://api.nuwaai.com/web/apiKey/auth")!
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    
    let body: [String: String] = ["secretKey": secretKey]
    request.httpBody = try? JSONSerialization.data(withJSONObject: body)
    
    URLSession.shared.dataTask(with: request) { data, response, error in
        guard let data = data else { return }
        do {
            if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any],
               let code = json["code"] as? Int,
               code == 0,
               let token = json["data"] as? String {
                print("token: \(token)")
                // 存储 token
                UserDefaults.standard.set(token, forKey: "nuwaAccessToken")
            }
        } catch {
            print("Error: \(error)")
        }
    }.resume()
}
import okhttp3.*
import org.json.JSONObject

fun getAccessToken() {
    val secretKey = "sk-jqZ-gBPcRCG1nLpaenmS1gew7rcCkIs-NUWSPzpd3DeWYxobM_CHm-uPTCa8gDPv"
    val client = OkHttpClient()
    val url = "https://api.nuwaai.com/web/apiKey/auth"
    
    val body = JSONObject()
    body.put("secretKey", secretKey)
    
    val request = Request.Builder()
        .url(url)
        .post(RequestBody.create(MediaType.parse("application/json"), body.toString()))
        .build()
    
    client.newCall(request).enqueue(object : Callback {
        override fun onFailure(call: Call, e: IOException) {
            e.printStackTrace()
        }
        
        override fun onResponse(call: Call, response: Response) {
            response.body()?.let {
                val json = JSONObject(it.string())
                if (json.getInt("code") == 0) {
                    val token = json.getString("data")
                    println("token: $token")
                    // 存储 token
                    val sharedPreferences = getSharedPreferences("nuwa", Context.MODE_PRIVATE)
                    sharedPreferences.edit().putString("accessToken", token).apply()
                }
            }
        }
    })
}
const secretKey = 'sk-jqZ-gBPcRCG1nLpaenmS1gew7rcCkIs-NUWSPzpd3DeWYxobM_CHm-uPTCa8gDPv';

wx.request({
  url: 'https://api.nuwaai.com/web/apiKey/auth',
  method: 'POST',
  header: {
    'Content-Type': 'application/json',
  },
  data: {
    secretKey: secretKey,
  },
  success: function(res) {
    if (res.data.code === 0) {
      console.log('token:', res.data.data);
      wx.setStorageSync('token', res.data.data);
    } else {
      console.error('请求失败:', res.data.msg);
    }
  },
  fail: function(error) {
    console.error('请求出错:', error);
  }
});
最近更新:: 2026/3/26 11:42
Contributors: 邹丹晔, 005609