Skip to content

Instantly share code, notes, and snippets.

@victor-abz
Forked from manhduy/flutter_wsse.dart
Created October 8, 2022 17:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save victor-abz/7cc73b55c5d111a06e7c865098d28e37 to your computer and use it in GitHub Desktop.
Save victor-abz/7cc73b55c5d111a06e7c865098d28e37 to your computer and use it in GitHub Desktop.
Future<Response> get(String url) async {
String wsseHeader = await generateAuthHeader();
final response = await httpClient.get(url,
headers: {
HttpHeaders.contentTypeHeader: 'application/vnd.api+json',
'Authorization': 'WSSE profile="UsernameToken"',
'X-WSSE': wsseHeader
},
);
return response;
}
Future<String> generateAuthHeader() async {
String userName = 'username';
String apiKey = 'apikey';
var uuid = Uuid();
String md5Str = md5.convert(utf8.encode(uuid.v1())).toString();
String none = base64.encode(utf8.encode(md5Str));
String created = DateTime.now().toUtc().toIso8601String();
String input = utf8.decode(base64.decode(none)) +
created + apiKey;
String digest = base64.encode(sha1.convert(utf8.encode(input)).bytes);
String wsseHeader = 'UsernameToken Username="$userName", PasswordDigest="$digest", Nonce="$none", Created="$created"';
return wsseHeader;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment