ASP.NET Core'de Facebook dış oturum açma ASP.NET Core
Valeriy Novytskyy ve Rick Anderson tarafından
Kod örnekleriyle bu öğreticide, kullanıcılarının önceki sayfada oluşturulan örnek bir ASP.NET Core 3.0 projesi kullanarak Facebook hesabıyla oturum açmasını nasıl etkinleştirebilirsiniz? İlk olarak resmi adımları takip eden bir Facebook Uygulama Kimliği oluşturacağız.
Uygulamayı Facebook'ta oluşturma
Microsoft.AspNetCore.Authentication.Facebook NuGet paketini projeye ekleyin.
Facebook Geliştiricileri uygulama sayfasına gidin ve oturum açın. Henüz bir Facebook hesabınız yoksa, oturum açma sayfasındaki Facebook'a kaydol bağlantısını kullanarak bir hesap oluşturun. Facebook hesabınız olduktan sonra, Facebook Geliştiricisi olarak kaydolmak için yönergeleri izleyin.
Yeni Uygulamalarım oluşturmak için Uygulama Oluştur'a tıklayın.

Formu doldurun ve Uygulama Kimliği Oluştur düğmesine dokunun.

Yeni Uygulama kartında Ürün Ekle'yi seçin. Facebook Oturum Açma kartında Ayarla'ya tıklayın

Hızlı Başlangıç sihirbazı, ilk sayfa olarak Bir Platform Seçin seçeneğiyle başlatıyor. Sol altta yer alan menüde FaceBook Oturum Ayarlar bağlantısına tıklayarak sihirbazı şimdilik atla:

İstemci OAuth kimlik doğrulaması sayfası Ayarlar görüntülenir:

Geçerli OAuth Yeniden Yönlendirme URI'leri alanına /signin-facebook ekli geliştirme URI'nizi girin (örneğin:
https://localhost:44320/signin-facebook). Bu öğreticinin devamlarında yapılandırılan Facebook kimlik doğrulaması, OAuth akışını uygulamak için /signin-facebook rotası üzerinden istekleri otomatik olarak işletir.
Not
URI /signin-facebook, Facebook kimlik doğrulama sağlayıcısının varsayılan geri çağırma değeri olarak ayarlanır. Facebook Kimlik Doğrulaması ara yazılımını yapılandırırken FacebookOptions sınıfının devralınan RemoteAuthenticationOptions.CallbackPath özelliği aracılığıyla varsayılan geri çağırma URI'sini değiştirebilirsiniz.
Değişiklikleri Kaydet’e tıklayın.
Sol Ayarlar > Temel bağlantısına tıklayın.
Bu sayfada, ve 'nizi not
App IDApp Secretedin. Her ikisini de sonraki bölümde ASP.NET Core uygulamanıza ekleyebilirsiniz:Siteyi dağıtırken Facebook Oturum Açma kurulum sayfasını yeniden ziyaret edin ve yeni bir genel URI'yi kaydetmeniz gerekir.
Facebook uygulama kimliğini ve gizli kimliğini depolama
Gizli Numara Yöneticisi ile Facebook uygulama kimliği ve gizli değer gibi hassas ayarları depolar. Bu örnek için aşağıdaki adımları kullanın:
Gizli depolamayı etkinleştirme yönergelerine göre gizli depolama için projeyi başlatma.
Gizli anahtarları ve ile yerel gizli anahtar deposuna hassas ayarları
Authentication:Facebook:AppIdAuthentication:Facebook:AppSecretdepolar:dotnet user-secrets set "Authentication:Facebook:AppId" "<app-id>" dotnet user-secrets set "Authentication:Facebook:AppSecret" "<app-secret>"
Ayırıcı, : tüm platformlarda ortam değişkeni hiyerarşik anahtarlarla birlikte çalışmaz. __çift alt çizgi şöyledir:
- Tüm platformlar tarafından de destekler. Örneğin,
:ayıracı Bash tarafından desteklanmaz,ancak__bu şekildedir. - Otomatik olarak bir ile değiştirilir
:
Facebook Kimlik Doğrulamasını Yapılandırma
ConfigureServices Startup.cs dosyasındaki yöntemine Facebook hizmetini ekleyin:
services.AddAuthentication().AddFacebook(facebookOptions =>
{
facebookOptions.AppId = Configuration["Authentication:Facebook:AppId"];
facebookOptions.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
});
Addaduthentication (dize) aşırı yüklemesi defaultscheme özelliğini ayarlar. Addaduthentication (eylem < authenticationoptions > ) aşırı yüklemesi, farklı amaçlarla varsayılan kimlik doğrulama düzenlerini ayarlamak için kullanılabilen kimlik doğrulama seçeneklerinin yapılandırılmasını sağlar. AddAuthenticationDaha önce yapılandırılmış authenticationoptions özelliklerini geçersiz kılmak için sonraki çağrılar.
Kimlik doğrulama işleyicisi kaydeden Authenticationbuilder genişletme metotları, kimlik doğrulama düzeni başına yalnızca bir kez çağrılabilir. Düzen özellikleri, Düzen adı ve görünen ad yapılandırmasına izin veren aşırı yüklemeler var.
Facebook ile oturum açma
- Uygulamayı çalıştırın ve Oturum aç'ı seçin.
- Oturum açmak için başka bir hizmet kullanın. altında Facebook'u seçin.
- Kimlik doğrulaması için Facebook'a yeniden yönlendirildisiniz.
- Facebook kimlik bilgilerinizi girin.
- E-postanızı ayaryabilirsiniz.
Artık Facebook kimlik bilgilerinizi kullanarak oturum açtınız:
React oturum açma yetkisini iptal etmek için
AccessDeniedPath , kullanıcı istenen yetkilendirme talebini onaylamazsa kullanıcı aracısı için bir yeniden yönlendirme yolu sağlar.
Aşağıdaki kod olarak AccessDeniedPath "/AccessDeniedPathInfo" ayarlar:
services.AddAuthentication().AddFacebook(options =>
{
options.AppId = Configuration["Authentication:Facebook:AppId"];
options.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
options.AccessDeniedPath = "/AccessDeniedPathInfo";
});
Sayfanın aşağıdaki AccessDeniedPath bilgileri içermesi önerilir:
- Uzaktan kimlik doğrulaması iptal edildi.
- Bu uygulama kimlik doğrulaması gerektirir.
- Yeniden oturum açmayı denemek için Oturum aç bağlantısını seçin.
AccessDeniedPath'i Test Etmek
- Facebook.com
- Oturum açmadıysanız, oturum açmanız gerekir.
- Uygulamayı çalıştırın ve Facebook oturum açma seçeneğini seçin.
- Şimdi değil'i seçin. Belirtilen sayfaya yeniden
AccessDeniedPathyönlendiriliyoruz.
İstek bilgilerini bir ara sunucu veya yük dengeleyici ile ilet
Uygulama bir ara sunucu veya yük dengeleyici arkasında dağıtılırsa, bazı özgün istek bilgileri, istek üst bilgilerinde uygulamaya iletilebilir. Bu bilgiler genellikle güvenli istek düzeni ( https ), ana bilgisayar ve ISTEMCI IP adresini içerir. Uygulamalar, özgün istek bilgilerini bulacak ve kullanacak şekilde bu istek üst bilgilerini otomatik olarak okumayın.
Düzen, dış sağlayıcılarla kimlik doğrulama akışını etkileyen bağlantı oluşturma sırasında kullanılır. Güvenli düzen () kaybı, https uygulamanın hatalı güvenli olmayan yeniden yönlendirme URL 'leri üretmesine neden olur.
İstek işleme için özgün istek bilgilerini uygulama için kullanılabilir hale getirmek üzere Iletilen üstbilgiler ara yazılımını kullanın.
Daha fazla bilgi için bkz. Yapılandırma ASP.NET Core sunucuları ve yük dengeciler ile çalışacak şekilde yapılandırma.
Birden çok kimlik doğrulama sağlayıcısı
Uygulama birden çok sağlayıcı gerektirdiğinde, sağlayıcı uzantısı yöntemlerini Addaduthenticationarkasında zincirle:
services.AddAuthentication()
.AddMicrosoftAccount(microsoftOptions => { ... })
.AddGoogle(googleOptions => { ... })
.AddTwitter(twitterOptions => { ... })
.AddFacebook(facebookOptions => { ... });
Facebook kimlik doğrulaması tarafından desteklenen yapılandırma seçenekleri hakkında daha fazla bilgi için bkz. FacebookOptions API başvurusu. Yapılandırma seçenekleri şunları yapmak için kullanılabilir:
- Kullanıcı hakkında farklı bilgiler talep edin.
- Oturum açma deneyimini özelleştirmek için sorgu dizesi bağımsız değişkenleri ekleyin.
Sorun giderme
- ASP.NET Core 2.x: içinde çağrısıyla yapılandırılmamışsa, kimlik doğrulaması yapmaya çalışıldığında Identity
services.AddIdentityConfigureServicesArgumentException: 'SignInScheme' seçeneği sağlanmalıdır. Bu öğreticide kullanılan proje şablonu, bunun yapılmasına sağlar. - İlk geçişi uygulayarak site veritabanı oluşturulmadı ise, istek hatası işleniyorken bir veritabanı işlemi başarısız oldu alırsınız. Veritabanını oluşturmak için Geçişleri Uygula'ya dokunun ve hatayı geçe devam etmek için yenileyin.
Sonraki adımlar
Bu makalede Facebook ile nasıl kimlik doğrulamasına sahip olduğunuz gösterildi. Önceki sayfada listelenen diğer sağlayıcılarla kimlik doğrulaması yapmak için benzer bir yaklaşımı takip edebilirsiniz.
Web sitenizi Azure web uygulamasında yayımlasanız, Facebook geliştirici
AppSecretportalında 'i sıfırlamanız gerekir.uygulama ayarlarında
Authentication:Facebook:AppIdAuthentication:Facebook:AppSecretve uygulama ayarlarını Azure portal. Yapılandırma sistemi, ortam değişkenlerinden anahtarları okumak için ayarlanır.