Hi,
in the current ABP io Microsoft authentication implementation you can get access token of Microsoft identity provider like this
add below line as showing in the image
options.SaveTokens = true;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Owl.reCAPTCHA;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Account.ExternalProviders;
using Volo.Abp.Account.Public.Web;
using Volo.Abp.Account.Public.Web.Pages.Account;
using Volo.Abp.Account.Security.Recaptcha;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Security.Claims;
namespace Acme.Penstore.Pages.Account
{
[ExposeServices(typeof(LoginModel))]
[Dependency(ReplaceServices = true)]
public class AppLoginModel : LoginModel
{
public AppLoginModel(IAuthenticationSchemeProvider schemeProvider, IOptions<AbpAccountOptions> accountOptions, IAbpRecaptchaValidatorFactory recaptchaValidatorFactory, IAccountExternalProviderAppService accountExternalProviderAppService, ICurrentPrincipalAccessor currentPrincipalAccessor, IOptions<IdentityOptions> identityOptions, IOptionsSnapshot<reCAPTCHAOptions> reCaptchaOptions) : base(schemeProvider, accountOptions, recaptchaValidatorFactory, accountExternalProviderAppService, currentPrincipalAccessor, identityOptions, reCaptchaOptions)
{
}
public override async Task<IActionResult> OnGetExternalLoginCallbackAsync(string returnUrl = "", string returnUrlHash = "", string remoteError = null)
{
var token = await SignInManager.GetExternalLoginInfoAsync();
var accessToken = token?.AuthenticationTokens?.FirstOrDefault(x => x.Name == "access_token");
return await base.OnGetExternalLoginCallbackAsync(returnUrl, returnUrlHash, remoteError);
}
}
}
also add you Microsoft client id and client secret on the Account Settings here
Hello Sergei.Gorlovetsky,
Apologies for the delay in response.
PFB our username for Github and share the required access:
anjalimus
Please do let me know if anything else is needed.
Thank You, Anjali
Thank you again for reporting this issue, we will fix this issue in the next release.
We have also refunded your ticket. Please check the updated balance.
Regards, Anjali
Hello fernando.guilherme,
I am trying to reproduce the issue. I am unable to reproduce. Could you please share steps to reproduce or give some snippet of html code and ts code of that particular condition?
If you are using ngx-datatable-column
in a loop then please check the following links
Demo - http://swimlane.github.io/ngx-datatable/#toggle
Source code - https://github.com/swimlane/ngx-datatable/blob/master/src/app/columns/column-toggle.component.ts
let me know if this help you.
Thanks, Anjali
Hi
From the code that you have provided I guess menu items are not visible. because you have removed it from the RouteService (this.routesService.remove(permissionProhibitedPageIds);
) so now routes service doesn't have those menu.
in the previous question I asked you "are you doing a reload after tenant switch?" i am guessing you are just using router to route to default root page.
can you replace following code
this.router.navigate(['/'], { skipLocationChange: false, onSameUrlNavigation: 'reload' }).then(ready => {
if (ready) {
//TODO: is it really needed? What to do here?
}
});
with this
window.location.href = '/'
Hi
You have to manually create The folder and also create register.cshtml in Identity Server Web application
and past the code which i have sent you in previous reply
does it contain functionality to connect a google login after account creation? can you explain it with the scenario i am not able understand.
you have to only register once after registration the login provider details get stored in these two tables along with the user created
select * from [dbo].[AbpUserLogins]
select * from [dbo].[AbpUserTokens]
please explain with a scenario then will be able to provide you with more details
yinchang
Yes we will fix in next version. Can we close this ticket if your query is resolved? Please confirm.
Thank You, Anjali
Hello ademaygun,
We tried deploying the application with v7.1.1, but could not be able to reproduce the issue. Also Checked your appsettings.json ,it looks fine. could you please elaborate more on your question.
Thanks, Anjali
Hello yinchang,
Please try by adding following code to MyApp\aspnet-core\src\MyApp.AuthServer\wwwroot\global-styles.css
:root .lpx-theme-dark .lpx-login-bg {
background-image: url('/LeptonX/images/login-pages/login-bg-img-dark.svg') !important;
}
:root .lpx-theme-light .lpx-login-bg {
background-image: url('/LeptonX/images/login-pages/login-bg-img-light.svg') !important;
}
:root .lpx-theme-dim .lpx-login-bg {
background-image: url('/LeptonX/images/login-pages/login-bg-img-dim.svg') !important;
}
Please do let us know if this solution has worked for you?
Awaiting for your response.
Thank You, Anjali
Hi
Yes you can add the non abp identity server in abp identity server. You just have to configure with the client id and client secret then abp database won't save the password as that will be considered as an external authentication. You can read more here how to configure.
https://learn.microsoft.com/en-us/dotnet/architecture/microservices/secure-net-microservices-web-applications/#authenticate-with-an-openid-connect-or-oauth-20-identity-provider