Guest User

Untitled

a guest
Dec 10th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. Map<String, dynamic> parseJwt(String token) {
  2. final parts = token.split('.');
  3. if (parts.length != 3) {
  4. throw Exception('invalid token');
  5. }
  6.  
  7. final payload = _decodeBase64(parts[1]);
  8. final payloadMap = json.decode(payload);
  9. if (payloadMap is! Map<String, dynamic>) {
  10. throw Exception('invalid payload');
  11. }
  12.  
  13. return payloadMap;
  14. }
  15.  
  16. String _decodeBase64(String str) {
  17. String output = str.replaceAll('-', '+').replaceAll('_', '/');
  18.  
  19. switch (output.length % 4) {
  20. case 0:
  21. break;
  22. case 2:
  23. output += '==';
  24. break;
  25. case 3:
  26. output += '=';
  27. break;
  28. default:
  29. throw Exception('Illegal base64url string!"');
  30. }
  31.  
  32. return utf8.decode(base64Url.decode(output));
  33. }
Add Comment
Please, Sign In to add comment