本文介绍了Spring Security OAuth2 AngularJS|注销流程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

参考oauth2Spring-Guide项目中的注销流程,用户首次使用用户名/密码进行身份验证后,下次注销时不再询问凭据。

如何确保每次注销后都询问用户名/密码。

这是我正在尝试实现的内容:-

    OAuth2服务器使用"AUTHORIZATION_CODE"授权类型颁发JWT令牌具有自动审批功能。这有html/angularjs表单要收集用户名/密码。

  • UI/Webfront-使用@EnableSSO。其所有终端都经过身份验证即它没有任何未经授权登录页面/UI/链接单击以转到/uaa服务器。因此点击http://localhost:8080立即将您重定向到http://localhost:9999/uaa并呈现用于收集用户名/密码的自定义表单。

  • 资源服务器-使用@EnableResourceServer。简单REST API(&A)。

使用上面的方法,我无法计算出注销流程。对用户界面应用程序的HTTP POST/注销将清除用户界面应用程序中的会话/身份验证,但用户会自动再次登录(因为我已选择自动批准所有作用域),而不会再次要求输入用户名密码。

查看日志和网络调用,似乎所有的"OAUTH舞蹈"都成功地再次发生,而用户没有再次被要求输入用户名/密码,并且AUTH服务器似乎记得上一次为客户端(使用org.springframework.security.oauth2.provider.code.InMemoryAuthorizationCodeServices?)颁发的AUTH令牌。

如何告诉auth服务器在每次请求代码/令牌无状态时都要求提供用户名/密码。

或在我给定的方案中实现注销的最佳方式。

(要重新创建一些接近我要求的内容,请从UiApplication中删除permitAll()部分,并在上述引导项目的auth服务器中配置autoApproval。)

github issue

jwt

因为您正在使用推荐答案令牌,所以不能真正吊销它们。作为一种解决办法,您可以使用一个注销REST端点来存储注销呼叫的时间戳和用户ID。

稍后,您可以将注销时间与JWT令牌发布时间进行比较,以决定是否允许API调用。

这篇关于Spring Security OAuth2 AngularJS|注销流程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 09:19