示例#1
0
 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);
 }
示例#2
0
        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);
 }