私はFacebookのOAuthプロバイダとSqliteデータベースを追加したデフォルトのASP.NET Core Webアプリケーションからなる非常に単純なWebアプリケーションを持っています。OAuth Facebookプロバイダのエラーを伴うASP.NETコアWebアプリケーション
問題なくローカルで作業しましたが、私がAzureにデプロイするときにエラーが発生しました。
は、しばらくして、私はというエラーになった:An error occurred while starting the application
時間のカップルのためのインターネットを検索し、実際のエラーを参照するにはさまざまな方法を試した後、私は答えhereにつまずきました。
今、私はエラーの詳細を見ることができる:
ArgumentException: The 'ClientId' option must be provided.
Microsoft.AspNetCore.Authentication.OAuth.OAuthMiddleware..ctor(RequestDelegate next, IDataProtectionProvider dataProtectionProvider, ILoggerFactory loggerFactory, UrlEncoder encoder, IOptions<SharedAuthenticationOptions> sharedOptions, IOptions<TOptions> options)
Microsoft.AspNetCore.Authentication.Facebook.FacebookMiddleware..ctor(RequestDelegate next, IDataProtectionProvider dataProtectionProvider, ILoggerFactory loggerFactory, UrlEncoder encoder, IOptions<SharedAuthenticationOptions> sharedOptions, IOptions<FacebookOptions> options)
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Microsoft.Extensions.Internal.ActivatorUtilities+ConstructorMatcher.CreateInstance(IServiceProvider provider)
Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass3_0.<UseMiddleware>b__0(RequestDelegate next)
Microsoft.AspNetCore.Builder.Internal.ApplicationBuilder.Build()
Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
私はオンラインで見つけることができるすべてのドキュメントは、あなただけのFacebook用のAppIDとAppSecretを必要としなければならないと言うので、これは奇妙です。 Microsoft guideに従ってこれを設定しました。ここ はStartup.csの該当ビットです:
app.UseFacebookAuthentication(new FacebookOptions()
{
AppId = Configuration["Authentication:Facebook:AppId"],
AppSecret = Configuration["Authentication:Facebook:AppSecret"]
});
私はexamplesは、GoogleとMicrosoftのプロバイダではなく、Facebookのために使用されてClientIdのを示すことがわかりました。 (これは大きなページですが、「ClientId」を検索するだけです) ClientIdを追加しようとしましたが、同じエラーが表示されます。
クライアントIDは、基本クラスとプロトコルでアプリIDがマップされるためです。 Facebookは何らかの理由で彼らのドキュメントに非標準的な名前を使用しています。より具体的なエラーメッセージのバグを報告することができます。 – Tratcher