2022-02-01 18:33:13 +01:00

43 lines
922 B
Dart

import 'dart:convert';
import 'package:filcnaplo/models/user.dart';
class JwtUtils {
static Map? decodeJwt(String jwt) {
var parts = jwt.split(".");
if (parts.length != 3) return null;
if (parts[1].length % 4 == 2) {
parts[1] += "==";
} else if (parts[1].length % 4 == 3) {
parts[1] += "=";
}
try {
var payload = utf8.decode(base64Url.decode(parts[1]));
return jsonDecode(payload);
} catch (error) {
// ignore: avoid_print
print("ERROR: JwtUtils.decodeJwt: $error");
}
return null;
}
static String? getNameFromJWT(String jwt) {
var jwtData = decodeJwt(jwt);
return jwtData?["name"];
}
static Role? getRoleFromJWT(String jwt) {
var jwtData = decodeJwt(jwt);
switch (jwtData?["role"]) {
case "Tanulo":
return Role.student;
case "Gondviselo":
return Role.parent;
}
return null;
}
}