fromMap static method
Implementation
static Token fromMap(Map? map) {
if (map == null) throw new Exception("No token from received");
//error handling as described in https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#error-response-1
if (map["error"] != null)
throw new Exception("Error during token request: " +
map["error"] +
": " +
map["error_description"]);
Token model = new Token();
model.accessToken = map["access_token"];
model.idToken = map["id_token"];
model.tokenType = map["token_type"];
model.expiresIn = map["expires_in"] is int
? map["expires_in"]
: int.tryParse(map["expires_in"].toString()) ?? 60;
model.refreshToken = map["refresh_token"];
model.issueTimeStamp = new DateTime.now().toUtc();
model.expireTimeStamp = map.containsKey("expire_timestamp")
? DateTime.fromMillisecondsSinceEpoch(map["expire_timestamp"])
: model.issueTimeStamp!
.add(new Duration(seconds: model.expiresIn! - model.expireOffSet));
return model;
}