diff --git a/lib/data/services/network/auth_interceptor.dart b/lib/data/services/network/auth_interceptor.dart index 2933d5d62..c25accc3b 100644 --- a/lib/data/services/network/auth_interceptor.dart +++ b/lib/data/services/network/auth_interceptor.dart @@ -1,20 +1,33 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart' hide Response; +import 'dart:convert'; +import 'package:crypto/crypto.dart'; import 'package:get_storage/get_storage.dart'; import 'entity/base_entity.dart'; class AuthInterceptor extends Interceptor { final GetStorage _storage = GetStorage(); + final String _signKey = '@214%67g15q4*67m17#4l67!'; // 替换为实际的密钥 @override void onRequest(RequestOptions options, RequestInterceptorHandler handler) { var jsonString = _storage.read("logintoken"); options.headers['Authorization'] = jsonString; + final timestamp = DateTime.now().millisecondsSinceEpoch.toString(); + options.headers['Ts'] = timestamp; + options.headers['Sign'] = _generateSign(timestamp); handler.next(options); } + String _generateSign(String timestamp) { + // 按照“MD5(私钥 + 时间戳)”生成签名,与 Go 端保持一致 + final signStr = 'ts=${timestamp}key=${_signKey}'; + print("signStr: $signStr"); + return md5.convert(utf8.encode(signStr)).toString(); + } + @override void onResponse(Response response, ResponseInterceptorHandler handler) async { BaseEntity entity = BaseEntity.fromJson(response.data);