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(); 否则无法跳转。

  • 相关阅读:
    Java的值传递机制
    面向对象
    java中static关键字的作用
    方法的重载和重写
    this和super的用法
    Java中关于return的理解
    java经典的内存图 (数据结构)
    java IO最让初学者误解的取名方式
    UDP 与 TCP简单入门理解示例
    Shiro简单入门
  • 原文地址:https://www.cnblogs.com/wintersoft/p/10801302.html
Copyright © 2011-2022 走看看