Browse Source

Support Blazor-wasm and Angular.

pull/12624/head
maliming 4 years ago
parent
commit
2b13be3c4b
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 3
      templates/app/angular/src/environments/environment.ts
  2. 19
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs
  3. 91
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs
  4. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
  5. 19
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs
  6. 8
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs

3
templates/app/angular/src/environments/environment.ts

@ -10,9 +10,10 @@ export const environment = {
logoUrl: '', logoUrl: '',
}, },
oAuthConfig: { oAuthConfig: {
issuer: 'https://localhost:44305', issuer: 'https://localhost:44305/',
redirectUri: baseUrl, redirectUri: baseUrl,
clientId: 'MyProjectName_App', clientId: 'MyProjectName_App',
dummyClientSecret: '1q2w3e*',
responseType: 'code', responseType: 'code',
scope: 'offline_access MyProjectName', scope: 'offline_access MyProjectName',
requireHttps: true, requireHttps: true,

19
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs

@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using MyCompanyName.MyProjectName.Blazor.Menus; using MyCompanyName.MyProjectName.Blazor.Menus;
using OpenIddict.Abstractions;
using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic; using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic;
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
using Volo.Abp.Autofac.WebAssembly; using Volo.Abp.Autofac.WebAssembly;
@ -73,17 +74,25 @@ public class MyProjectNameBlazorModule : AbpModule
builder.Services.AddOidcAuthentication(options => builder.Services.AddOidcAuthentication(options =>
{ {
builder.Configuration.Bind("AuthServer", options.ProviderOptions); builder.Configuration.Bind("AuthServer", options.ProviderOptions);
options.UserOptions.NameClaim = OpenIddictConstants.Claims.Name;
options.UserOptions.NameClaim = JwtClaimTypes.Name; options.UserOptions.RoleClaim = OpenIddictConstants.Claims.Role;
options.UserOptions.RoleClaim = JwtClaimTypes.Role;
options.ProviderOptions.DefaultScopes.Add("MyProjectName"); options.ProviderOptions.DefaultScopes.Add("MyProjectName");
options.ProviderOptions.DefaultScopes.Add("roles"); options.ProviderOptions.DefaultScopes.Add("roles");
options.ProviderOptions.DefaultScopes.Add("email"); options.ProviderOptions.DefaultScopes.Add("email");
options.ProviderOptions.DefaultScopes.Add("phone"); options.ProviderOptions.DefaultScopes.Add("phone");
}); });
AbpClaimTypes.UserName = JwtClaimTypes.Name; AbpClaimTypes.UserId = OpenIddictConstants.Claims.Subject;
AbpClaimTypes.Role = OpenIddictConstants.Claims.Role;
AbpClaimTypes.UserName = OpenIddictConstants.Claims.Name;
AbpClaimTypes.Name = OpenIddictConstants.Claims.GivenName;
AbpClaimTypes.SurName = OpenIddictConstants.Claims.FamilyName;
AbpClaimTypes.PhoneNumber = OpenIddictConstants.Claims.PhoneNumber;
AbpClaimTypes.PhoneNumberVerified = OpenIddictConstants.Claims.PhoneNumberVerified;
AbpClaimTypes.Email = OpenIddictConstants.Claims.Email;
AbpClaimTypes.EmailVerified = OpenIddictConstants.Claims.EmailVerified;
} }
private static void ConfigureUI(WebAssemblyHostBuilder builder) private static void ConfigureUI(WebAssemblyHostBuilder builder)

91
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs

@ -27,10 +27,10 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
private readonly IStringLocalizer<OpenIddictResponse> L; private readonly IStringLocalizer<OpenIddictResponse> L;
public OpenIddictDataSeedContributor( public OpenIddictDataSeedContributor(
IConfiguration configuration, IConfiguration configuration,
IOpenIddictApplicationManager applicationManager, IOpenIddictApplicationManager applicationManager,
IOpenIddictScopeManager scopeManager, IOpenIddictScopeManager scopeManager,
IPermissionDataSeeder permissionDataSeeder, IPermissionDataSeeder permissionDataSeeder,
IStringLocalizer<OpenIddictResponse> l) IStringLocalizer<OpenIddictResponse> l)
{ {
_configuration = configuration; _configuration = configuration;
@ -62,19 +62,19 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
}); });
} }
} }
private async Task CreateApplicationsAsync() private async Task CreateApplicationsAsync()
{ {
var commonScopes = new List<string> var commonScopes = new List<string>
{ {
OpenIddictConstants.Permissions.Scopes.Address, OpenIddictConstants.Permissions.Scopes.Address,
OpenIddictConstants.Permissions.Scopes.Email, OpenIddictConstants.Permissions.Scopes.Email,
OpenIddictConstants.Permissions.Scopes.Phone, OpenIddictConstants.Permissions.Scopes.Phone,
OpenIddictConstants.Permissions.Scopes.Profile, OpenIddictConstants.Permissions.Scopes.Profile,
OpenIddictConstants.Permissions.Scopes.Roles, OpenIddictConstants.Permissions.Scopes.Roles,
"MyProjectName" "MyProjectName"
}; };
var configurationSection = _configuration.GetSection("OpenIddict:Applications"); var configurationSection = _configuration.GetSection("OpenIddict:Applications");
//Web Client //Web Client
@ -93,7 +93,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
secret: null, secret: null,
grantTypes: new List<string> //Hybrid flow grantTypes: new List<string> //Hybrid flow
{ {
OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.AuthorizationCode,
OpenIddictConstants.GrantTypes.Implicit OpenIddictConstants.GrantTypes.Implicit
}, },
scopes: commonScopes, scopes: commonScopes,
@ -101,7 +101,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc" postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc"
); );
} }
//Console Test / Angular Client //Console Test / Angular Client
var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"];
if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) if (!consoleAndAngularClientId.IsNullOrWhiteSpace())
@ -113,20 +113,19 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
consentType: OpenIddictConstants.ConsentTypes.Implicit, consentType: OpenIddictConstants.ConsentTypes.Implicit,
displayName: "Console Test / Angular Application", displayName: "Console Test / Angular Application",
secret: configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*", secret: configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*",
grantTypes: new List<string> grantTypes: new List<string>
{ {
OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.AuthorizationCode,
OpenIddictConstants.GrantTypes.Password, OpenIddictConstants.GrantTypes.Password,
OpenIddictConstants.GrantTypes.ClientCredentials, OpenIddictConstants.GrantTypes.ClientCredentials,
"LinkLogin", OpenIddictConstants.GrantTypes.RefreshToken
"Impersonation"
}, },
scopes: commonScopes, scopes: commonScopes,
redirectUri: webClientRootUrl, redirectUri: webClientRootUrl,
postLogoutRedirectUri: webClientRootUrl postLogoutRedirectUri: webClientRootUrl
); );
} }
// Blazor Client // Blazor Client
var blazorClientId = configurationSection["MyProjectName_Blazor:ClientId"]; var blazorClientId = configurationSection["MyProjectName_Blazor:ClientId"];
if (!blazorClientId.IsNullOrWhiteSpace()) if (!blazorClientId.IsNullOrWhiteSpace())
@ -139,7 +138,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
consentType: OpenIddictConstants.ConsentTypes.Implicit, consentType: OpenIddictConstants.ConsentTypes.Implicit,
displayName: "Blazor Application", displayName: "Blazor Application",
secret: null, secret: null,
grantTypes: new List<string> grantTypes: new List<string>
{ {
OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.AuthorizationCode,
}, },
@ -161,7 +160,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
consentType: OpenIddictConstants.ConsentTypes.Implicit, consentType: OpenIddictConstants.ConsentTypes.Implicit,
displayName: "Blazor Application", displayName: "Blazor Application",
secret: configurationSection["MyProjectName_Swagger:ClientSecret"], secret: configurationSection["MyProjectName_Swagger:ClientSecret"],
grantTypes: new List<string> grantTypes: new List<string>
{ {
OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.AuthorizationCode,
}, },
@ -170,7 +169,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
); );
} }
} }
private async Task CreateApplicationAsync( private async Task CreateApplicationAsync(
[NotNull] string name, [NotNull] string name,
[NotNull] string type, [NotNull] string type,
@ -187,7 +186,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
{ {
throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]); throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]);
} }
if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase)) if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase))
{ {
throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]); throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]);
@ -198,7 +197,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
return; return;
//throw new BusinessException(L["TheClientIdentifierIsAlreadyTakenByAnotherApplication"]); //throw new BusinessException(L["TheClientIdentifierIsAlreadyTakenByAnotherApplication"]);
} }
var client = await _applicationManager.FindByClientIdAsync(name); var client = await _applicationManager.FindByClientIdAsync(name);
if (client == null) if (client == null)
{ {
@ -213,7 +212,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
Check.NotNullOrEmpty(grantTypes, nameof(grantTypes)); Check.NotNullOrEmpty(grantTypes, nameof(grantTypes));
Check.NotNullOrEmpty(scopes, nameof(scopes)); Check.NotNullOrEmpty(scopes, nameof(scopes));
if (new [] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All(grantTypes.Contains)) if (new [] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All(grantTypes.Contains))
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken); application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken);
@ -229,7 +228,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout);
} }
foreach (var grantType in grantTypes) foreach (var grantType in grantTypes)
{ {
if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode)
@ -242,36 +241,36 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization);
} }
if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode ||
grantType == OpenIddictConstants.GrantTypes.ClientCredentials || grantType == OpenIddictConstants.GrantTypes.ClientCredentials ||
grantType == OpenIddictConstants.GrantTypes.Password || grantType == OpenIddictConstants.GrantTypes.Password ||
grantType == OpenIddictConstants.GrantTypes.RefreshToken || grantType == OpenIddictConstants.GrantTypes.RefreshToken ||
grantType == OpenIddictConstants.GrantTypes.DeviceCode) grantType == OpenIddictConstants.GrantTypes.DeviceCode)
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token);
} }
if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials)
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials);
} }
if (grantType == OpenIddictConstants.GrantTypes.Implicit) if (grantType == OpenIddictConstants.GrantTypes.Implicit)
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit);
} }
if (grantType == OpenIddictConstants.GrantTypes.Password) if (grantType == OpenIddictConstants.GrantTypes.Password)
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password);
} }
if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) if (grantType == OpenIddictConstants.GrantTypes.RefreshToken)
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken);
} }
if (grantType == OpenIddictConstants.GrantTypes.Implicit) if (grantType == OpenIddictConstants.GrantTypes.Implicit)
{ {
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken);
@ -285,13 +284,13 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
var buildInScopes = new [] var buildInScopes = new []
{ {
OpenIddictConstants.Permissions.Scopes.Address, OpenIddictConstants.Permissions.Scopes.Address,
OpenIddictConstants.Permissions.Scopes.Email, OpenIddictConstants.Permissions.Scopes.Email,
OpenIddictConstants.Permissions.Scopes.Phone, OpenIddictConstants.Permissions.Scopes.Phone,
OpenIddictConstants.Permissions.Scopes.Profile, OpenIddictConstants.Permissions.Scopes.Profile,
OpenIddictConstants.Permissions.Scopes.Roles OpenIddictConstants.Permissions.Scopes.Roles
}; };
foreach (var scope in scopes) foreach (var scope in scopes)
{ {
if (buildInScopes.Contains(scope)) if (buildInScopes.Contains(scope))
@ -303,7 +302,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope); application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope);
} }
} }
if (redirectUri != null) if (redirectUri != null)
{ {
if (!redirectUri.IsNullOrEmpty()) if (!redirectUri.IsNullOrEmpty())
@ -312,14 +311,14 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
{ {
throw new BusinessException(L["InvalidRedirectUri", redirectUri]); throw new BusinessException(L["InvalidRedirectUri", redirectUri]);
} }
if (application.RedirectUris.All(x => x != uri)) if (application.RedirectUris.All(x => x != uri))
{ {
application.RedirectUris.Add(uri); application.RedirectUris.Add(uri);
} }
} }
} }
if (postLogoutRedirectUri != null) if (postLogoutRedirectUri != null)
{ {
if (!postLogoutRedirectUri.IsNullOrEmpty()) if (!postLogoutRedirectUri.IsNullOrEmpty())
@ -328,14 +327,14 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
{ {
throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]); throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]);
} }
if (application.PostLogoutRedirectUris.All(x => x != uri)) if (application.PostLogoutRedirectUris.All(x => x != uri))
{ {
application.PostLogoutRedirectUris.Add(uri); application.PostLogoutRedirectUris.Add(uri);
} }
} }
} }
if (permissions != null) if (permissions != null)
{ {
await _permissionDataSeeder.SeedAsync( await _permissionDataSeeder.SeedAsync(
@ -350,4 +349,4 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
} }
} }
} }

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs

@ -103,7 +103,7 @@ public class MyProjectNameHttpApiHostModule : AbpModule
options.Authority = configuration["AuthServer:Authority"]; options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]); options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
options.Audience = "MyProjectName"; options.Audience = "MyProjectName";
options.TokenValidationParameters.IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_C40DBB176E78")); options.TokenValidationParameters.IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_C40DBB176E78"));
options.TokenValidationParameters.TokenDecryptionKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80")); options.TokenValidationParameters.TokenDecryptionKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80"));
}); });

19
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs

@ -59,12 +59,6 @@ public class MyProjectNameHttpApiHostModule : AbpModule
builder.AddEncryptionKey(new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80"))); builder.AddEncryptionKey(new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80")));
}); });
PreConfigure<AbpOpenIddictWildcardDomainOptions>(options =>
{
options.EnableWildcardDomainSupport = true;
options.WildcardDomainsFormat.Add("https://{0}.abp.io/signin-oidc");
});
PreConfigure<OpenIddictBuilder>(builder => PreConfigure<OpenIddictBuilder>(builder =>
{ {
builder.AddValidation(options => builder.AddValidation(options =>
@ -75,12 +69,17 @@ public class MyProjectNameHttpApiHostModule : AbpModule
}); });
}); });
} }
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
var hostingEnvironment = context.Services.GetHostingEnvironment(); var hostingEnvironment = context.Services.GetHostingEnvironment();
Configure<AbpOpenIddictAspNetCoreOptions>(options =>
{
options.AddDevelopmentEncryptionAndSigningCertificate = false;
});
ConfigureBundles(); ConfigureBundles();
ConfigureUrls(configuration); ConfigureUrls(configuration);
ConfigureConventionalControllers(); ConfigureConventionalControllers();
@ -161,10 +160,10 @@ public class MyProjectNameHttpApiHostModule : AbpModule
options.Audience = "MyProjectName"; options.Audience = "MyProjectName";
options.BackchannelHttpHandler = new HttpClientHandler options.BackchannelHttpHandler = new HttpClientHandler
{ {
ServerCertificateCustomValidationCallback = ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
}; };
options.MapInboundClaims = false;
options.TokenValidationParameters.IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_C40DBB176E78")); options.TokenValidationParameters.IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_C40DBB176E78"));
options.TokenValidationParameters.TokenDecryptionKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80")); options.TokenValidationParameters.TokenDecryptionKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80"));
}); });

8
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs

@ -60,12 +60,6 @@ public class MyProjectNameIdentityServerModule : AbpModule
builder.AddEncryptionKey(new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80"))); builder.AddEncryptionKey(new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80")));
}); });
PreConfigure<AbpOpenIddictWildcardDomainOptions>(options =>
{
options.EnableWildcardDomainSupport = true;
options.WildcardDomainsFormat.Add("https://{0}.abp.io/signin-oidc");
});
PreConfigure<OpenIddictBuilder>(builder => PreConfigure<OpenIddictBuilder>(builder =>
{ {
builder.AddValidation(options => builder.AddValidation(options =>
@ -81,7 +75,7 @@ public class MyProjectNameIdentityServerModule : AbpModule
{ {
var hostingEnvironment = context.Services.GetHostingEnvironment(); var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
Configure<AbpOpenIddictAspNetCoreOptions>(options => Configure<AbpOpenIddictAspNetCoreOptions>(options =>
{ {
options.AddDevelopmentEncryptionAndSigningCertificate = false; options.AddDevelopmentEncryptionAndSigningCertificate = false;

Loading…
Cancel
Save