Check the docs before asking a question: https://abp.io/docs/latest Check the samples to see the basic tasks: https://abp.io/docs/latest/samples The exact solution to your question may have been answered before, and please first use the search on the homepage. Provide us with the following info:
Hi Team,
5.Notice the user is logged in and the same is shown on Top right corner, But the Left menu is only showing 1 item 6.Refresh the Page 7.After refresh the additional menu start appearing
Why this is happening? am I doing anything wrong?
Thanks
Hi Team,
I open the angular app, For login, it redirects me to the Host/API project for authentication, and I enter the credentials for auth and It redirects me back to angular. When the angular app opened for the first time, I saw the blank page and nothing else, and when I pressed the refresh only then it loads the angular project.
In Short, After authentication, I need to refresh the page of the angular app to load it correctly. Can you please help me what I'm missing in this?
Here is the env. config.
export const environment = {
production: false,
application: {
baseUrl,
name: 'myProj',
},
oAuthConfig: {
issuer: 'https://{0}.myProj.com:44368/',
redirectUri: baseUrl,
clientId: 'myProj_App',
responseType: 'code',
scope: 'offline_access myProj',
requireHttps: true,
},
apis: {
default: {
url: 'https://myProj.com:44368',
rootNamespace: 'myProj',
},
},
} as Environment;
Can you
Hi Team, I want to add an additional option on top off General Settings, Please review the screenshot. Please let me know how can I achieve this without overriding the whole UI of eThemeLeptonXComponents.Settings
I found this article but its overriding the whole UI which I don't want to https://docs.abp.io/en/commercial/latest/themes/lepton-x/angular ///... this.replaceableComponents.add({ component: YourNewGeneralSettingsComponent, key: eThemeLeptonXComponents.Settings, }); ///...
I want to use both flows i.e. responseType: 'code' and non 'code' flow. How can I achieve that ? The reason is I want to use azure login, which works with 'code' flow which redirect the app to backend for login. But I don't want the code to go each time to backend api for auth.
I want for normal login I can use angular login page and authenticate user, If user choose the login with AD only then he will be redirected to backend api for login with ad and get back and angular take the auth code to log him in
oAuthConfig: { issuer: 'https://{0}.motrv2.com:44368/', redirectUri: baseUrl, clientId: 'motr_App', responseType: 'code', scope: 'offline_access motr', requireHttps: true, },
Hi Team,
I am suing responseType: 'code' i.e. My frontend application (Angular) get authenticated from backend and get navigated back after authenticated.
In Normal flow its working fine but in I have a used case I need to use it in iFrame,
In iFrame the user see the login screen and authenticated correctly but after auth it again goes back to login not to frontend.
here are my findings in normal flow it navigated to angular ?code=xxx
but in iFrame it again go back to login
Please suggest how can i fix this.
How can I Switch between different version of ABP CLI and ABP Suite as I have Multiple Project with different version eg. 7.2.2, and 7.4.0
Recently I upgraded by ABP Suite to v7.4.0 and created a new project, Which works fine.
But when I got back to my older project and run abp suite it loads the v7.4.0 templates in abp suite which is obvious.
I downgraded the version to v7.2.2 But still the abp suite is showing v7.4.0 templates for v7.2.2 project.
Can you help me in this how to clear the template cache to get v7.2.2 thing again.
Also Is there any NVM kind of tool for switching between diff versions to work on multiple project ?
How can I allow adding sub-unit of same name in different node of organization ? Here is an example/error
Ed: Adding Orgs and Sub units in following sequence
App is working well, Login authtoken etc everything works well.
The used case is I want to use app in iframe as well For this I enabled
app.Use(async (context, next) =>
{
context.Response.Headers.Add("Content-Security-Policy", "frame-ancestors https://xyz.com");
await next();
});
iFrame is loading the login page correctly but the issue is when I click on login button it throw exception of 400 bad request. which is due to antiforgery cookie
Log
2023-09-26 16:36:47.704 +05:30 [INF] Executing endpoint '/Account/Login' 2023-09-26 16:36:47.704 +05:30 [INF] Route matched with {page = "/Account/Login", action = "", controller = "", area = ""}. Executing page /Account/Login 2023-09-26 16:36:47.704 +05:30 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy 2023-09-26 16:36:47.708 +05:30 [INF] Antiforgery token validation failed. The required antiforgery cookie ".AspNetCore.Antiforgery.jZ1YYv9-FIY" is not present. Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The required antiforgery cookie ".AspNetCore.Antiforgery.jZ1YYv9-FIY" is not present. at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery.ValidateRequestAsync(HttpContext httpContext) at Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ValidateAntiforgeryTokenAuthorizationFilter.OnAuthorizationAsync(AuthorizationFilterContext context) 2023-09-26 16:36:47.709 +05:30 [INF] Authorization failed for the request at filter 'Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.AutoValidateAntiforgeryTokenAuthorizationFilter'. 2023-09-26 16:36:47.715 +05:30 [INF] Executing StatusCodeResult, setting HTTP status code 400 2023-09-26 16:36:47.715 +05:30 [INF] Executed page /Account/Login in 10.3035ms 2023-09-26 16:36:47.715 +05:30 [INF] Executed endpoint '/Account/Login'
How can I fix this in iFrame?
Hi Team, I have integrated the AzureOpenId auth login.
Using following config in HostModule Registration
.AddOpenIdConnect("AzureOpenId", "Azure AD OpenId", options => { options.Authority = "https://login.microsoftonline.com/" + configuration["AzureAd:TenantId"] + "/v2.0/"; options.ClientId = configuration["AzureAd:ClientId"]; options.ResponseType = OpenIdConnectResponseType.CodeIdToken; options.CallbackPath = configuration["AzureAd:CallbackPath"]; options.ClientSecret = configuration["AzureAd:ClientSecret"]; options.RequireHttpsMetadata = false; options.SaveTokens = true; options.GetClaimsFromUserInfoEndpoint = true; options.Scope.Add("email"); options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "sub"); options.TokenValidationParameters.ValidateIssuer = false; })
Firstly the "Azure AD OpenId" login button is appearing in backend controller, not in Angular UI.
So I proceed with Backend Api Login page and click on Ad Login, User get signed in correctly and token are validated as well everything looks good. But I want this to be redirected back to angular UI and user should be logged in.
Please help me in configuring the angular in such a way that I can use AD token in angular login.
If I try to use environment config as, responseType: 'code', it always throwing
error:invalid_request error_description:The specified 'redirect_uri' is not valid for this client application. error_uri:https://documentation.openiddict.com/errors/ID204
Thanks
The used case is, I am getting an error on my UAT environment after login. But its not being generated each time. Its occurring on one specific mac, on safari and firefox, in chrome there is no issue at all. I tried all the way cleaning everything and running in private/incognito window (specific mac system) everywhere else it work smoothly
The issue is, Unhandled exception of Correlation failed. It seems to be some sort of cookies issue. but not able to produce on local Please find the attached screenshot of error.
here are some additional details
context.Services.AddAuthentication(options => { options.DefaultScheme = "Cookies"; options.DefaultChallengeScheme = "oidc"; }) .AddCookie("Cookies", options => { options.ExpireTimeSpan = TimeSpan.FromDays(365); }) .AddAbpOpenIdConnect("oidc", options => { options.CorrelationCookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None; options.Authority = configuration["AuthServer:Authority"]; options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]); ; options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.ClientId = configuration["AuthServer:ClientId"];
options.ClientSecret = configuration["AuthServer:ClientSecret"];
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("role");
options.Scope.Add("email");
options.Scope.Add("phone");
options.Scope.Add("mzine");
});