我有一個非常簡單的Web應用程序,包括我已添加到Facebook OAuth提供程序和Sqlite數據庫的默認ASP.NET Core Web應用程序。ASP.NET核心Web應用程序與OAuth Facebook提供程序錯誤
知道它在本地工作沒有任何問題,但是當我部署到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()
這是奇怪,因爲我能在網上找到的文檔說,你應該只需要的AppId和AppSecret爲Facebook。 我跟着微軟guide得到這個配置。 這裏是Startup.cs的相關位:顯示正在使用的谷歌和微軟提供者,但不是Facebook
app.UseFacebookAuthentication(new FacebookOptions()
{
AppId = Configuration["Authentication:Facebook:AppId"],
AppSecret = Configuration["Authentication:Facebook:AppSecret"]
});
我發現examples客戶端Id。 (這是一個很大的頁面,但只是搜索'ClientId') 我嘗試添加ClientId,但只是得到相同的錯誤。
它說客戶端ID,因爲這是應用程序ID映射到基類和協議。由於某些原因,Facebook在其文檔中使用非標準名稱。您可以提交更具體的錯誤消息的錯誤。 – Tratcher