Şu anda Google'a giriş yapma sürecimi, OpenID oturum açma yöntemini kullanmadan önce OAuth kullanması için yükseltiyorum.MVC5'de OWIN Oauth kullanmayan Google Kimlik Doğrulama HariciLoginCallback işlevine isabet etmiyor
Şu ana kadar belirttiğim adımlar, Microsoft.Owin.Security.Google paketini 2.1.0 sürümüne yükselttiğimde, bu sürümde, UseGoogleAuthentication yönteminde seçenekler ekleme olanağı bulunduğundan.
ben linkte Alex Buğday en Çözüm kullanmaya çalıştık: Get ExtraData from MVC5 framework OAuth/OWin identity provider with external auth provider
(ayrıca Facebook kimlik içerir) Startup.Auth.cs kod bu gider: Buna
var facebookAuthenticationOptions = new FacebookAuthenticationOptions()
{
AppId = "MYAPPID",
AppSecret = "MYSECRET"
};
facebookAuthenticationOptions.Scope.Add("email");
app.UseFacebookAuthentication(facebookAuthenticationOptions);
app.UseGoogleAuthentication();
:
var facebookAuthenticationOptions = new FacebookAuthenticationOptions()
{
AppId = "MYAPPID",
AppSecret = "MYSECRET"
};
facebookAuthenticationOptions.Scope.Add("email");
app.UseFacebookAuthentication(facebookAuthenticationOptions);
var googleOAuth2AuthenticationOptions = new GoogleOAuth2AuthenticationOptions
{
ClientId = "MYCLIENTID",
ClientSecret = "MYSECRET",
CallbackPath = new PathString("/en/Account/ExternalLoginCallback"),
Provider = new GoogleOAuth2AuthenticationProvider()
{
}
};
app.UseGoogleAuthentication(googleOAuth2AuthenticationOptions);
Google Kimlik Doğrulama seçenekleri ekledikten sonra benim app için ExternalLoginCallback eylemi izin vermez google veya facebook için çağrılmalıdır (facebook kodunda herhangi bir değişiklik yapılmaz ama sorun hala bunu etkiler). Ön ucunda
, dış giriş düğmeleri tıkladıktan sonra sayfa aşağıdaki linke beni yönlendirir ve boş beyaz ekran döndürür
https ....../tr/Hesap/ExternalLoginCallback # __ = _ (= işaretinden önce sadece tek bir alt çizgi var, adres çubuğumda göründüğü halde SO sözdizimi kaldırır). facebook için
ve
https ....../tr/Hesap google/ExternalLoginCallback
. normalde (Bu işlev içinde hata ayıklama kesme noktaları yerleştirmek için çalıştık ve bu bilgi google kimlik doğrulama seçeneği olduğunda durduruldu geçmez gibi aşağıda kontrolör yöntemi isabet etmez.
// GET: /Account/ExternalLoginCallback
[AllowAnonymous]
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
Google'dan kimlik doğrulama seçeneklerini kaldırırsanız Doğrulama, sadece eski OpenID giriş geri döner ve tekrar çalışıyor.
burada basit bir şey eksik
? ya da orada soruna neden olan Owin.Security.Google Kütüphane içinde bir şey kötü oluyor?
'u aldıktan sonra ek bir adımdır. Bu, facebook kimlik doğrulamayla ilgili sorunu giderir. Google kullandığımda, sitemde aşağıdaki bağlantıya gitmeye çalışır: geri arama 'https .../signin-google' Geri arama yolunu nasıl kuracağınızı biliyor musunuz? Orijinal yazımda vardı callbackPath kullandığınızda, aynı sorun özgün sorumu olarak oluşur. İstemci Kimliği, Google + 'da ExternalLoginCallback işlevimi gösterecek şekilde ayarlanmıştır, ancak aslında iade edilmez. –
Sadece takip etmek için, bu yöntemin kullanılması otomatik olarak adreste bulunan signin-google isteğini kullanıyor gibi görünüyor. Bunu düzeltmek için yaptığım şey, google konsolundaki google geri arama konumumu değiştirmek için bu adrese işaret etmekti. Ayrıca, RouteConfig dosyamda 'route.MapRoute ( name:" signin-google ", url:" signin-google ", varsayılanlar: rotam ekledim: new {controller =" Account ", action =" ExternalLoginCallback "} ); ' Yardımınız için teşekkürler @ suhas-joshi –
@Brad: Üzgünüz, yeterince cevap veremedi ama bu sorunun cevabını gördüğümüze memnun oldum –