使用 openiddict 设置登录页面绝对 url 的 SSO

问题描述

我将 openiddict 用于自定义 sso,并希望在 spa 应用程序中的单独域上托管登录 ui。我面临的问题是挑战动作的正确配置。

我试图覆盖 OnRedirectToLogin 事件,但这显然不起作用

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,options =>
            {
                options.Events = new CookieAuthenticationEvents()
                {
                    OnRedirectToLogin = async (context) =>
                    {
                        context.HttpContext.Response.Redirect("https://example.com/account/login");
                    }
                };
            });

我做错了吗?

解决方法

this answer

中找到了以下问题的解决方案

要添加的代码:

services.ConfigureApplicationCookie(options =>
        {
            options.Events.OnRedirectToLogin = context =>
            {
                context.HttpContext.Response.Redirect("http://example.com/login");
                return Task.CompletedTask;
            };
        });