a client store
This commit is contained in:
parent
fc15e42efe
commit
52edbff231
6 changed files with 80 additions and 57 deletions
|
|
@ -1,10 +1,7 @@
|
|||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using Google.Apis.Util.Store;
|
||||
using IdentityServer8;
|
||||
using IdentityServer8.Services;
|
||||
using IdentityServerHost.Quickstart.UI;
|
||||
using Microsoft.AspNetCore.Authentication;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.DataProtection;
|
||||
|
|
@ -18,14 +15,9 @@ using Microsoft.Extensions.Localization;
|
|||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
using Newtonsoft.Json;
|
||||
using Yavsc.Abstract.Workflow;
|
||||
using Yavsc.Billing;
|
||||
using Yavsc.Helpers;
|
||||
using Yavsc.Interface;
|
||||
using Yavsc.Models;
|
||||
using Yavsc.Models.Billing;
|
||||
using Yavsc.Models.Haircut;
|
||||
using Yavsc.Models.Workflow;
|
||||
using Yavsc.Services;
|
||||
using Yavsc.Settings;
|
||||
using Yavsc.ViewModels.Auth;
|
||||
|
|
@ -34,8 +26,6 @@ using System.Security.Cryptography;
|
|||
using Microsoft.IdentityModel.Tokens;
|
||||
using Microsoft.IdentityModel.Protocols.Configuration;
|
||||
using IdentityModel;
|
||||
using System.Security.Claims;
|
||||
using IdentityServer8.Security;
|
||||
using Yavsc.Interfaces;
|
||||
|
||||
namespace Yavsc.Extensions;
|
||||
|
|
@ -238,8 +228,9 @@ public static class HostingExtensions
|
|||
options.EmitStaticAudienceClaim = true;
|
||||
})
|
||||
.AddInMemoryIdentityResources(Config.IdentityResources)
|
||||
.AddInMemoryClients(Config.Clients)
|
||||
.AddInMemoryApiScopes(Config.ApiScopes)
|
||||
.AddInMemoryClients(Config.TestingClients)
|
||||
.AddClientStore<ClientStore>()
|
||||
.AddInMemoryApiScopes(Config.TestingApiScopes)
|
||||
.AddAspNetIdentity<ApplicationUser>()
|
||||
;
|
||||
if (builder.Environment.IsDevelopment())
|
||||
|
|
|
|||
30
src/Yavsc/Services/ClientStore.cs
Normal file
30
src/Yavsc/Services/ClientStore.cs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Yavsc.Models;
|
||||
using IdentityServer8.Stores;
|
||||
using IdentityServer8.Models;
|
||||
|
||||
namespace Yavsc.Services;
|
||||
|
||||
public class ClientStore : IClientStore
|
||||
{
|
||||
public ClientStore(ApplicationDbContext applicationDbContext)
|
||||
{
|
||||
ApplicationDbContext = applicationDbContext;
|
||||
}
|
||||
|
||||
public ApplicationDbContext ApplicationDbContext { get; }
|
||||
|
||||
public async Task<Client> FindClientByIdAsync(string clientId)
|
||||
{
|
||||
var clientFromDb = await ApplicationDbContext.Client.FirstAsync(c => c.Id == clientId);
|
||||
|
||||
return new Client
|
||||
{
|
||||
ClientId = clientFromDb.Id,
|
||||
ClientName = clientFromDb.DisplayName,
|
||||
ClientSecrets = { new Secret(clientFromDb.Secret.Sha256()) },
|
||||
AllowedGrantTypes =[ GrantType.ClientCredentials, GrantType.DeviceFlow],
|
||||
AllowedScopes = ["openid", "profile", "scope1"]
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue