baoantoken.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. const axios = require('axios');
  2. const crypto = require('crypto');
  3. // 设置请求的参数
  4. var appId = '436417AD26340B3ACAA495DC2588B4FB'; // 替换为实际的appId
  5. var appKey = 'be246fac538b42f8a2ec006e3940018c'; // 替换为实际的appKey
  6. /*
  7. 获取用户登录token
  8. */
  9. async function getAccessToken() {
  10. try {
  11. // 获取当前时间戳(毫秒)
  12. const timeStamp = Date.now().toString();
  13. // 进行SHA1-HMAC加密
  14. const keyInfo = crypto.createHmac('sha1', appKey)
  15. .update(appId + appKey + timeStamp)
  16. .digest('hex');
  17. // 设置请求的URL和参数
  18. const url = 'https://bjt.baoan.edu.cn/api/apigateway/getAccessToken';
  19. const params = {
  20. appId: appId,
  21. timeStamp: timeStamp,
  22. keyInfo: keyInfo
  23. };
  24. // 发送POST请求并返回响应数据
  25. const response = await axios.post(url, params);
  26. return response.data;
  27. } catch (error) {
  28. console.error('请求失败:', error);
  29. throw error; // 重新抛出错误以供外部调用处理
  30. }
  31. }
  32. async function getAccessToken(ticket) {
  33. try {
  34. // https://bjt.baoan.edu.cn/api/user/openapi/user/verify-ticket-info?ticket=**&accessToken={{ACCESS_TOKEN}}
  35. // 设置接口的 URL 和 accessToken
  36. const apiUrl = 'https://bjt.baoan.edu.cn/api/user/openapi/user/verify-ticket-info';
  37. const accessToken = await getAccessToken().tokenInfo.accessToken; // 请替换为实际的accessToken
  38. // 构造请求的 URL
  39. const url = `${apiUrl}?ticket=${ticket}&accessToken=${accessToken}`;
  40. // 发送 GET 请求
  41. const response = await axios.get(url)
  42. return response.data;
  43. } catch (error) {
  44. console.error('请求失败:', error);
  45. throw error; // 重新抛出错误以供外部调用处理
  46. }
  47. }
  48. /*
  49. // 使用示例
  50. (async () => {
  51. try {
  52. const result = await getAccessToken(appId, appKey);
  53. console.log('响应数据:', result);
  54. } catch (error) {
  55. console.error('获取AccessToken失败:', error);
  56. }
  57. })();
  58. */