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

  • 相关阅读:
    认识SQL
    Redis应用场景
    泛型
    数据库多表连接查询的实现方式
    Spring中常用注解及其作用
    flask-路转换器
    CSS初始化样式
    python 中的__str__ 和__repr__方法
    python的map、reduce和filter(过滤器)函数(廖雪峰老师python基础)
    python的迭代器(转自廖雪峰老师python基础)
  • 原文地址:https://www.cnblogs.com/wintersoft/p/10801302.html
Copyright © 2011-2022 走看看