• .net core facebook 容易进的一个坑


    Microsoft.AspNetCore.Authentication.Facebook 库

                    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                        .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
                        {
                            options.DataProtectionProvider = CreateRedisDataProtectionProvider(ConnectionMultiplexer.Connect($"{redisConnectionString},defaultDataBase=1"));
                            //options.DataProtectionProvider = DataProtectionProvider.Create(new DirectoryInfo(@"C:\_xx_sso"));
                            options.SlidingExpiration = true;
                            options.LoginPath = "/Account/SignIn";
                            options.Cookie = new CookieBuilder()
                            {
                                HttpOnly = true,
                                Name = $".{GetType().Namespace}",
                            };
                        })
                        .AddFacebook(FacebookDefaults.AuthenticationScheme, o =>
                         {
                             o.AppId = Configuration.GetSection("FacebookDeveloper").GetValue<string>("AppId");
                             o.AppSecret = Configuration.GetSection("FacebookDeveloper").GetValue<string>("AppSecret");
                             o.SaveTokens = false;
                             o.CallbackPath = new PathString("/signin-facebook");
                             o.Events = new Microsoft.AspNetCore.Authentication.OAuth.OAuthEvents
                             {
                                 OnRemoteFailure = context =>
                                 {
                                     if(context.Request.Query["error"] == "access_denied" && context.Request.Query["error_code"] == "200" && context.Request.Query["error_description"] == "Permissions+error" && context.Request.Query["error_reason"] == "user_denied")
                                        context.Response.Redirect("/Account/SignIn");
                                     else
                                        context.Response.Redirect("/Profile");
                                     context.HandleResponse();
                                     return Task.CompletedTask;
                                 }
                             };
                         });

    必须要有 context.HandleResponse(); 否则无法跳转。

  • 相关阅读:
    sort
    Sicily--17956. Maximum Multiple
    代码1005
    487-3279的解法实例
    487-3279另一种解法
    487-3279
    人工智能--识别句子
    1003-Hangover
    推荐书单(转自GITHUB)
    转自微信号:测试那点事
  • 原文地址:https://www.cnblogs.com/wintersoft/p/10801302.html
Copyright © 2020-2023  润新知