gpt4 book ai didi

c# - IdentityServer4 直接链接到 Facebook 身份验证

转载 作者:行者123 更新时间:2023-12-03 23:56:39 24 4
gpt4 key购买 nike

我有一个与 Facebook 集成的 IdentityServer4 应用程序,这工作正常。

我还有一个使用 IdentityServer 的 Angular2 应用程序。目前,如果用户想通过 Facebook 登录,他们必须单击“登录”,这会将他们带到 IdentityServer,然后单击 Facebook 按钮。

我想在我的 Angular 应用程序上有一个“Facebook”按钮,然后它会自动将它们直接重定向到 Facebook,绕过主登录屏幕。

我注意到以下代码行:

public async Task<IActionResult> Login(string returnUrl)
{
...
if (vm.IsExternalLoginOnly)
{
// only one option for logging in
return ExternalLogin(vm.ExternalProviders.First().AuthenticationScheme, returnUrl);
}
...
}

这基本上就是我想要的,自动重定向到 Facebook。所以我添加了以下方法:
public async Task<IActionResult> FacebookLogin(string returnUrl)
{
var vm = await _account.BuildLoginViewModelAsync(returnUrl);

// only one option for logging in
return ExternalLogin(vm.ExternalProviders.First(x => x.DisplayName.ToUpper() == "FACEBOOK").AuthenticationScheme, returnUrl);
}

虽然这会直接重定向到 Facebook 并进行身份验证,但它不会重定向回调用应用程序。我可以看到关于无效 redirectUri 的错误记录,我认为这是因为我没有调用 connect/authorize ?

那么有没有办法将附加参数传递给 connect/authorize指定使用 Facebook 然后我可以在我的 Controller 中使用,或者调用不同的方法?

谢谢

最佳答案

在 OIDC 规范中已经有一个规定来做到这一点,IdentityServer4 确实支持。

包括 acr_values Angular2 oidc-client 配置中的参数。像这样的值应该告诉身份服务器将您的请求转发到身份提供者:“idp:oidc-facebook”。当然,该 IdP 需要向您的 IdentityServer 实例注册。

关于c# - IdentityServer4 直接链接到 Facebook 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45152961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com