diff --git a/lib/http/init.dart b/lib/http/init.dart index 7840499f..6244df04 100644 --- a/lib/http/init.dart +++ b/lib/http/init.dart @@ -8,6 +8,7 @@ import 'package:dio/io.dart'; import 'package:dio_cookie_manager/dio_cookie_manager.dart'; // import 'package:dio_http2_adapter/dio_http2_adapter.dart'; import 'package:hive/hive.dart'; +import 'package:pilipala/utils/id_utils.dart'; import '../utils/storage.dart'; import '../utils/utils.dart'; import 'constants.dart'; @@ -77,10 +78,11 @@ class Request { static setOptionsHeaders(userInfo, bool status) { if (status) { dio.options.headers['x-bili-mid'] = userInfo.mid.toString(); + dio.options.headers['x-bili-aurora-eid'] = + IdUtils.genAuroraEid(userInfo.mid); } dio.options.headers['env'] = 'prod'; dio.options.headers['app-key'] = 'android64'; - dio.options.headers['x-bili-aurora-eid'] = 'UlMFQVcABlAH'; dio.options.headers['x-bili-aurora-zone'] = 'sh001'; dio.options.headers['referer'] = 'https://www.bilibili.com/'; } diff --git a/lib/utils/id_utils.dart b/lib/utils/id_utils.dart index e3814df6..a68bfb40 100644 --- a/lib/utils/id_utils.dart +++ b/lib/utils/id_utils.dart @@ -1,5 +1,6 @@ // ignore_for_file: constant_identifier_names +import 'dart:convert'; import 'dart:math'; import 'package:flutter/material.dart'; @@ -72,4 +73,19 @@ class IdUtils { } return result; } + + // eid生成 + static String? genAuroraEid(int uid) { + if (uid == 0) { + return null; + } + String uidString = uid.toString(); + List resultBytes = List.generate( + uidString.length, + (i) => uidString.codeUnitAt(i) ^ "ad1va46a7lza".codeUnitAt(i % 12), + ); + String auroraEid = base64Url.encode(resultBytes); + auroraEid = auroraEid.replaceAll(RegExp(r'=*$', multiLine: true), ''); + return auroraEid; + } }