protected virtual bool ValidateClientJWT(string jwt, out ClientJwt clientId) { if (jwt != null && jwt.TryRead(out ClientJwt obj)) { var currentHost = _accessor.HttpContext?.Request.GetHostUrl(); clientId = obj; return(obj.ExpireTime > DateTime.Now && Clients.Any(e => e.ClientId == obj.ClientId) && (string.IsNullOrEmpty(obj.Provider) || obj.Provider.ToLower() == currentHost.ToLower())); } clientId = null; return(false); }
public static string CreateClientToken(AppClient cl, DateTime?expire = null, string provider = null) { expire = expire ?? DateTime.MaxValue; var jw = new ClientJwt { ClientId = cl.ClientId, Secret = cl.Secret, StartTime = DateTime.Now, ExpireTime = expire.Value, Provider = provider }; return(Shell.Encryptor.Encrypt(jw.ToJson())); }
protected virtual void SetIdentity(ClientJwt jwt) { _accessor.HttpContext.User = new DefaultPrincipal(jwt.ClientId); provider.SetCurrentUserId(jwt.ClientId, true); }