当前位置: 首页 > 知识库问答 >
问题:

identity server 4 oidc客户端js注销重定向

许马鲁
2023-03-14

我试图在react中实现OpenId和oidc客户端js。现在我一直在实现注销功能。

据我所知,我需要设置post\u logout\u redirect\u uri,并使用signoutRedirect()注销用户。注销用户可以正常工作,但遗憾的是,它停留在identity server注销页面。我需要做的是将用户重定向到post\u logout\u redirect\u uri。

有人能告诉我我错过了什么吗?提前感谢!

这是我被重定向的URL<代码>https://identityserver.xx.com/Account/Logout?logoutId=CfDJ8Cqm6alCoddAqWl...

这是我的技术堆栈:

  • 身份服务器v4
  • odec-客户端-js
  • 带有mobx状态管理器的ReactJS(TS)。

下面是我的身份服务器管理员设置。

  • 前通道注销Uri:http://localhost:3000/signout-oidc
  • 注销后重定向URI:http://localhost:3000/signout-回调oidc

这是注销代码

    logout = async () => {
        try {
            userManager.signoutRedirect({
                id_token_hint: this.user?.id_token,
                post_logout_redirect_uri : process.env.REACT_APP_LOGOFF_REDIRECT_URL,
                state: this.user?.state
            }).then( () => {
                console.log('done signoutRedirect')
            });

            userManager.clearStaleState()
        }catch(error){
            console.log(error);
        }
    }

共有1个答案

洪念
2023-03-14

在AccountController中-

  var vm = new LoggedOutViewModel
            {
                AutomaticRedirectAfterSignOut = AccountOptions.AutomaticRedirectAfterSignOut, //this must return true.
                PostLogoutRedirectUri = logout?.PostLogoutRedirectUri,
                ClientName = string.IsNullOrEmpty(logout?.ClientName) ? logout?.ClientId : logout?.ClientName,
                SignOutIframeUrl = logout?.SignOutIFrameUrl,
                LogoutId = logoutId
            };

在你看来,LoggedOut。cshtml检查重定向。正确包含js。

@section scripts
{
    @if (Model.AutomaticRedirectAfterSignOut)
    {
        <script src="~/js/signout-redirect.js"></script>

    }
}

如果您的注销页面不包含带有

 类似资料:
  • 我正在使用和NIO通道编写一个简单的NIO服务器。每次我有一个传入连接,我都使用以下代码向选择器注册它: 在客户端,因为我只有一个socketChannel,所以很容易关闭通道并使用选择器取消注册。然而,在服务器端,我所做的只是等待任何连接过的客户端(可能有数千个)的写操作。有什么方法可以检测到客户端已在服务器端断开连接?例如,10K连接后,选择器似乎会变得非常低效,其中大多数可能会在短时间内失效

  • 我已经构建了两个keycloak客户机(spring-client和一个tomcat-client,使用keycloak、OIDC、spring boot adapter和OIDC、tomcat adapter),它们都在同一领域工作。我和这些客户有两个问题。 当我要登录到这些客户端时,我需要分别为每个客户端提供用户名和密码,即使我使用的是相同的浏览器(多个选项卡)和相同的用户名。 当我需要注销时

  • 在开始协议前,客户端在授权服务器注册。客户端在授权服务器上注册所通过的方式超出了本规范,但典型的涉及到最终用户与HTML注册表单的交互。 客户端注册不要求客户端与授权服务器之间的直接交互。在授权服务器支持时,注册可以依靠其他方式来建立信任关系并获取客户端的属性(如重定向URI、客户端类型)。例如,注册可以使用自发行或第三方发行声明或通过授权服务器使用信任通道执行客户端发现完成。 当注册客户端时,客

  • 客户端播放:30秒示例 我当地的咖啡馆设有摇摇欲坠,不稳定的无线网络,并由市议会慷慨地赞助纳税人的钱。连接后,您将被重定向到一个受SSL保护的页面,提示您输入用户名和密码。输入详细信息后,您就可以自由地享受间歇性的辍学,类似难题的速度以及配置错误的透明代理。 我倾向于在第一时间使这种事情自动化,因为从长远来看,现在花费的时间将超过所花的时间。在这种情况下,我可能会使用Firebug来过滤表单发布参

  • 这是我的应用程序属性文件: 这是我的配置类: 我做错了什么? 谢谢。

  • 这里出现的问题是,当我在示例socekt之间连接时。使用此套接字的io客户端。io服务器(按节点)。js(只运行两个终端并打开客户端和服务器之间的套接字连接)我没有问题 但是,当我试图注入这个套接字时。io客户端到我的Ember。js应用程序,准确地说,它会将我的客户端从给定地址重定向到类似于 http://localhost:8080/socket.io/?EIO=3 我还在浏览器中粘贴了检查控