【问题标题】:How to deocde JWT in Flutter?如何在 Flutter 中解码 JWT?
【发布时间】:2019-07-22 00:56:45
【问题描述】:

我想在我的移动应用中解码 JWT 令牌。 我遵循了这个方法。 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

【问题讨论】:

    标签: dart flutter jwt


    【解决方案1】:

    根据您添加的方式,您执行以下操作(检查_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'];
    }
    

    【讨论】:

    • 抛出异常('invalid token')来
    • 试试你在 jwt.io 上使用的令牌并检查它是否是一个有效的令牌
    猜你喜欢
    • 2018-06-26
    • 1970-01-01
    • 2016-10-08
    • 2021-03-24
    • 1970-01-01
    • 2016-11-15
    • 2017-04-11
    • 2015-07-02
    相关资源
    最近更新 更多