logon method

Future<bool> logon(
  1. Jwt jwt
)

Implementation

Future<bool> logon(Jwt jwt) async
{
  // valid token?
  if (jwt.valid)
  {
    // set system token
    _jwt = jwt;
    _token.set(jwt.token);

    // set connected = true
    _connected.set(true);

    // set user claims
    jwt.claims.forEach((key, value)
    {
      key = key.toLowerCase().trim();
      switch (key)
      {
        case 'connected' :
          break;

        case 'rights' :
          _rights.set(value);
          break;

        case 'language' :
          _language.set(value);
          break;

        default:
          if (_claims.containsKey(key)) {
            _claims[key]!.set(value);
          } else {
            _claims[key] = StringObservable(Binding.toKey(key), value, scope: scope);
          }
      }
    });

    // clear missing claims
    _claims.forEach((key, observable) => jwt.claims.containsKey(key) ? null : observable.set(null));

    // set phrase language
    phrase.language = _language.get();

    return true;
  }

  // clear all claims
  else {
    return await logoff();
  }
}