我有一個IdentityServer4應用程序,它具有Facebook集成,這是工作正常。IdentityServer4直接鏈接到Facebook身份驗證
我也有一個使用IdentityServer的Angular2應用程序。目前,如果用戶想通過Facebook登錄,他們必須點擊「登錄」,然後點擊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,然後我可以在我的控制器中使用,或者調用不同的方法?
感謝
謝謝,希望這是一個簡單的實施!必須在文檔中錯過。儘管如此,我必須將值設置爲'idp:Facebook'才能正常工作,並且區分大小寫。 – ADringer