parseToken static method
解析 token 信息。
从 Token 字符串中解析 accessKey、PutPolicy 信息
Implementation
static TokenInfo parseToken(String token) {
assert(token != '');
final segments = token.split(':');
if (segments.length < 2) {
throw ArgumentError('invalid token');
}
PutPolicy? putPolicy;
final accessKey = segments.first;
/// 具体的 token 信息可以参考这里。
/// [内部文档](https://github.com/qbox/product/blob/master/kodo/auths/UpToken.md#admin-uptoken-authorization)
if (segments.length >= 3) {
if (segments.last == '') {
throw ArgumentError('invalid token');
}
putPolicy = PutPolicy.fromJson(
jsonDecode(
String.fromCharCodes(
base64Url.decode(
segments.last,
),
),
) as Map<String, dynamic>,
);
}
return TokenInfo(accessKey, putPolicy);
}