Gateway is like a reverse proxy server.
thank u,it's worked, I'm just using the gateway as a proxy, I don't need to use swagger like microservices, previously I referenced the microservices template.
hi
I want to proxy the api through the gateway
Gateway is like a reverse proxy server.
Your auth server is
localhost:44333,
but your swagger website can't reach the auth server.Is
localhost:44333
available?
I think I've solved it, I've proxied both authserver and hostapi through gateway, and now I'm left with the last one, and I don't know why I'm getting multiple inputs.
if (IsSwaggerEnabled(configuration))
{
app.UseSwagger();
app.UseAbpSwaggerUI(options => { ConfigureSwaggerUI(proxyConfig, options, configuration); });
app.UseRewriter(CreateSwaggerRewriteOptions());
}
private static bool IsSwaggerEnabled(IConfiguration configuration)
{
return bool.Parse(configuration["Swagger:IsEnabled"] ?? "true");
}
private void ConfigureSwagger(ServiceConfigurationContext context, IConfiguration configuration)
{
if (IsSwaggerEnabled(configuration))
{
context.Services.AddAbpSwaggerGen();
}
}
private static void ConfigureSwaggerUI(
IProxyConfig proxyConfig,
SwaggerUIOptions options,
IConfiguration configuration)
{
foreach (var cluster in proxyConfig.Clusters)
{
options.SwaggerEndpoint($"/swagger-json/{cluster.ClusterId}/swagger/v1/swagger.json", $"{cluster.ClusterId} API");
}
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
options.OAuthScopes(
"Unified"
);
}
"ReverseProxy": {
"Routes": {
"UnifiedApi": {
"ClusterId": "HostApiServer",
"Match": {
"Path": "/api/{**catch-all}"
}
},
"UnifiedApiSwagger": {
"ClusterId": "HostApiServer",
"Match": {
"Path": "/swagger-json/HostApiServer/swagger/v1/swagger.json"
},
"Transforms": [
{ "PathRemovePrefix": "/swagger-json/HostApiServer" }
]
},
//// 授权服务的路由
//"AuthServerWellKnown": {
// "ClusterId": "AuthServer",
// "Match": {
// "Path": "/.well-known/openid-configuration"
// },
// "Order": 1
//},
//"AuthServerConnectEndpoints": {
// "ClusterId": "AuthServer",
// "Match": {
// "Path": "/connect/{**catch-all}"
// },
// "Order": 2
//}
},
"Clusters": {
"HostApiServer": {
"Destinations": {
"HostApiServer": {
"Address": "http://localhost:44362/"
}
}
},
//"AuthServer": {
// "Destinations": {
// "AuthServer": {
// "Address": "http://localhost:44333/"
// }
// }
//}
}
Hi, I'm having the same problem deploying my application using docker, nginx: https://abp.io/support/questions/7180/Deploying-an-ABP-tiered-project-to-mutliple-docker-containers Can you open or share how you solved it? Or need me to create a new issue, thank you!
ok it works, thanks for the reply, but regarding the validity of the token I should use:
PreConfigure<OpenIddictServerBuilder>(builder =>
{
builder
.SetAccessTokenLifetime(TimeSpan.FromDays(1))
.SetIdentityTokenLifetime(TimeSpan.FromDays(1));
});
still using OpenId > Application to set the token lifetime, I don't want frequent logins, I've extended the IdentitySessionCleanupWorker
CleanupPeriod,can you explain? Thanks!
I’ve been exploring ABP.IO's support resources and came across these discussions:
How to SSO Integration Using OAuth2/OpenID Connect in ABP.IO Microservices How to Authenticate External SSO Token with Admin APIs Now, I have an existing Angular client and I’m planning to introduce a new Vue client. I aim to implement a Single Sign-On (SSO) where logging into one client allows access to the other without needing to log in again.
Considering two potential scenarios where:
Both clients are under the same domain (e.g., xxx.com for Angular and xxx.com/vue for Vue). Each client is hosted on a separate subdomain (e.g., angular.xxx.com and vue.xxx.com). Could you advise on how to configure the authorization service to support SSO in these setups? Does ABP natively support such configurations for SSO?
Thank you!