Gotcha! Thanks for your help on this!
Thank you. The example you provided got me what I needed. I removed the tenancy check (since we're not using multi-tenancy in our application) and ended up with this revised version (below).
A couple things I need:
protected override async Task TrySetEmailAsync()
{
if (IsExternalLogin)
{
var externalLoginInfo = await SignInManager.GetExternalLoginInfoAsync();
if (externalLoginInfo == null)
{
return;
}
if (!externalLoginInfo.Principal.Identities.Any())
{
return;
}
var identity = externalLoginInfo.Principal.Identities.First();
var emailClaim = identity.FindFirst(AbpClaimTypes.Email) ?? identity.FindFirst(ClaimTypes.Email);
var givenNameClaim = identity.FindFirst(AbpClaimTypes.Name) ?? identity.FindFirst(ClaimTypes.GivenName);
var surnameClaim = identity.FindFirst(AbpClaimTypes.SurName) ?? identity.FindFirst(ClaimTypes.Surname);
if (emailClaim == null)
{
return;
}
var userName = await UserManager.GetUserNameFromEmailAsync(emailClaim.Value);
Input = new PostInput
{
EmailAddress = emailClaim.Value,
FirstName = givenNameClaim?.Value ?? "",
LastName = surnameClaim?.Value ?? "",
};
}
}
Could not find details on what is the expected behaviour for ABP.IO out of the box.
We have setup Google as an external provider. In our Google Cloud we've created an OAuth Consent Screen service & client with available scopes:
/auth/userinfo.email /auth/userinfo.profile openid
During our testing of this feature, when we click the "Google" button on the registration/login screen, the user experiences:
Should these fields be pre-populated from the external provider or is this not implemented by ABP?
For authentication we should define a new OpenID application within ABP and configure Elsa Studio to authenticate via OIDC? Or perhaps there's a simpler way to accomplish this as Elsa Server is hosted within the ABP project, so should have direct access to the Identity provider.
Thanks, I did find this but I wasn't sure if it was completely compatible with my solution as I use the Angular frontend and a *.HttpApi.Host project instead of an MVC Web project. This article also doesn't cover how to expose Elsa Studio (other than to use docker which seems unnecessary for this) and to use ABP's users and permissions within Elsa Studio.
I've followed the instructions for creating an Elsa 3 server and added this to a new Domain-level project (*.Domain.Workflows) within my ABP Solution. I've got *.Domain.Workflows referencing *.Domain (project reference and module added to DependsOn) and *.Application references *.Domain.Workflows (project reference and module added to DependsOn). While debugging I can see that the initialization logic is being executed in my new module, however the endpoint where the Elsa API should be exposed is not responding (404). It's not clear to me if ABP's configuration is somehow interfering or not.
Hoping I can get some guidance on this?
That's really strange. To the best of my awareness I didn't delete any upgrades (except for empty ones), but you're right: I don't see a way for this situation to happen otherwise.
Thanks for your help on figuring this one out!
I've resent it.
Already sent on Friday. Please confirm receipt or provide update on findings.