public ClientVm GetMatched(TokenRequest tokenRequest) { var grantTypeId = (int)Enum.Parse <GrantType>(tokenRequest.GrantType); var hashedSecret = _cryptoRepository.Hash(tokenRequest.ClientSecret); return(_passportContext.Set <Client>() .Where(x => x.Code == tokenRequest.ClientId && x.GrantTypeId == grantTypeId && x.ClientSecrets.Any(y => y.Secret == hashedSecret)) .Select(x => new ClientVm { ClientId = x.Code, Name = x.Name, GrantTypeId = x.GrantTypeId, AllowedScopes = x.ClientScopes .Select(y => y.Scope.Name) .ToList() }) .FirstOrDefault()); }
public void Create(ClientVm clientVm) { var client = _passportContext.Set <Client>() .FirstOrDefault(x => x.Code == clientVm.ClientId); _passportContext.Set <ClientSecret>() .DeleteMany(x => x.ClientId == client.Id); _passportContext.SaveChanges(); var hashedSecret = _cryptoRepository.Hash(clientVm.Secret); var clientSecret = new ClientSecret { ClientId = client.Id, Secret = hashedSecret }; _passportContext.Set <ClientSecret>().Add(clientSecret); _passportContext.SaveChanges(); }