zoukankan      html  css  js  c++  java
  • .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(); 否则无法跳转。

  • 相关阅读:
    游戏对战练习
    扩展属性 配置文件
    数据操作类:增删改查(三大类)
    作业
    泛型集合
    Linux下查看文件和文件夹大小
    reids客户端 redis-cli用法
    生产环境下JAVA进程高CPU占用故障排查
    MySQL主从复制与读写分离
    最全面 Nginx 入门教程 + 常用配置解析
  • 原文地址:https://www.cnblogs.com/wintersoft/p/10801302.html
Copyright © 2011-2022 走看看