dart - 如何在Flutter中解码JWT?

标签 dart flutter jwt

我想在移动应用中解码JWT token 。
我遵循了这种方法。 https://stackoverflow.com/a/52021206/11065582
但是输出是

{"site_id":"2","isActualNSolutionAvailable":"True","isCauseNEffectsAvailable":"True","isServiceCenterAvailable":"True","user_id":"190","employee_id":"36","user_name":"...","userPassword":"o+2r8b/9k9i75j4VE+9xNmJnQpbipT1lYRzzrciAXqWkE/jNzg6Qk5MWP16A==","userPWDSalt":"lbNmVWQGMsvlkhuX/YN6P6mobkC0L+1fgFtL6ttN3KI3/kXH/+OtBPff1A+WGfltiOmXf3Nbs2ewItPHhkrmHask+++UNNxSGm+xD/7Dz8vCxOzRTP5OE/Kf3LFXZwq1UmafhxIIYVua7m8eApulR+HwW47/RUKfJZvIZYjE80AYkoetYJmx4hdu+NBxItv1fyx1TGpMKbB+vY9F6CJK9xp76yrjtnzlctgJb5ID/xx/TMj9qLaBx+pAHGc3BZYRdlCXJYnHEasHTtDk2RoYvnv24iQpS5Q==","exp":1551332124,"iss":"sl.com","aud":"sl.com"}

我如何只获得 site_id

最佳答案

根据您添加的方式执行以下操作(检查_decodeJWT方法):

Map<String, dynamic> parseJwt(String token) {
  final parts = token.split('.');
  if (parts.length != 3) {
    throw Exception('invalid token');
  }

  final payload = _decodeBase64(parts[1]);
  final payloadMap = json.decode(payload);
  if (payloadMap is! Map<String, dynamic>) {
    throw Exception('invalid payload');
  }

  return payloadMap;
}


_decodeJwt(String token){
  Map<String,dynamic> tokenDecoded = parseJWT(token);
  String siteId = tokenDecoded['site_id'];
}

关于dart - 如何在Flutter中解码JWT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54920117/

相关文章:

sorting - 如何通过嵌套值对 map 重新排序

flutter - 在 Flutter 中锁定每个屏幕的屏幕方向在 iPad 上不起作用

java - 如何根据http header过滤JWT认证权限

json - 如何在Flutter列表中使用JSON数据列表创建DropdownButton

javascript - jsonwebtoken 中的有效负载错误

java - 如何在不同服务器上时对 Spring UsernamePasswordAuthenticationFilter 进行负载平衡

android - 展开标题时如何更改展开标题颜色?

flutter - 如何根据 parent 在 flutter 的大小

dart - 动态创建聚合物元素

dart - 如何使用 'persistant' 抽屉