12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- const axios = require('axios');
- const crypto = require('crypto');
- // 设置请求的参数
- var appId = '436417AD26340B3ACAA495DC2588B4FB'; // 替换为实际的appId
- var appKey = 'be246fac538b42f8a2ec006e3940018c'; // 替换为实际的appKey
- /*
- 获取用户登录token
- */
- async function getAccessToken() {
- try {
- // 获取当前时间戳(毫秒)
- const timeStamp = Date.now().toString();
- // 进行SHA1-HMAC加密
- const keyInfo = crypto.createHmac('sha1', appKey)
- .update(appId + appKey + timeStamp)
- .digest('hex');
- // 设置请求的URL和参数
- const url = 'https://bjt.baoan.edu.cn/api/apigateway/getAccessToken';
- const params = {
- appId: appId,
- timeStamp: timeStamp,
- keyInfo: keyInfo
- };
- // 发送POST请求并返回响应数据
- const response = await axios.post(url, params);
- return response.data;
- } catch (error) {
- console.error('请求失败:', error);
- throw error; // 重新抛出错误以供外部调用处理
- }
- }
- async function getToken(ticket, res) {
- try {
- // https://bjt.baoan.edu.cn/api/user/openapi/user/verify-ticket-info?ticket=**&accessToken={{ACCESS_TOKEN}}
- // 设置接口的 URL 和 accessToken
- const apiUrl = 'https://bjt.baoan.edu.cn/api/user/openapi/user/verify-ticket-info';
- const data = await getAccessToken(); // 请替换为实际的accessToken
- const accessToken = data.tokenInfo.accessToken
- // 构造请求的 URL
- const url = `${apiUrl}?ticket=${ticket}&accessToken=${accessToken}`;
- // 发送 GET 请求
- const response = await axios.get(url)
- // return response.data;
- res.status(200).json({ data: response.data });
- } catch (error) {
- console.error('请求失败:', error);
- res.status(500).json({ data: {}, error: error });
- throw error; // 重新抛出错误以供外部调用处理
- }
- }
- module.exports = { getToken };
- /*
- // 使用示例
- (async () => {
- try {
- const result = await getAccessToken(appId, appKey);
- console.log('响应数据:', result);
- } catch (error) {
- console.error('获取AccessToken失败:', error);
- }
- })();
- */
|