【问题标题】:How to logout in my own oauth2 clients如何在我自己的 oauth2 客户端中注销
【发布时间】:2018-12-27 02:01:49
【问题描述】:

我创建了 OAuth 2.0 服务器和一些客户端,但我不知道如何使用 SSO 注销。当我在注销后单击登录时,我不再需要用户名和密码。我想“真的”登录。据说这是一个棘手的问题

https://spring.io/guides/tutorials/spring-security-and-angular-js/

所以任何人都可以给我一些想法来解决它。

【问题讨论】:

    标签: oauth-2.0


    【解决方案1】:

    使用以下代码实现注销功能

    @Controller
    public class RevokeTokenController {
    
        @Autowired
        private TokenStore tokenStore;
    
        @RequestMapping(value = "/revoke-token", method = RequestMethod.GET)
        public @ResponseBody ResponseEntity<HttpStatus> logout(HttpServletRequest request) {
            String authHeader = request.getHeader("Authorization");
            if (authHeader != null) {
                try {
                    String tokenValue = authHeader.replace("Bearer", "").trim();
                    OAuth2AccessToken accessToken = tokenStore.readAccessToken(tokenValue);
                    tokenStore.removeAccessToken(accessToken);
                } catch (Exception e) {
                    return new ResponseEntity<HttpStatus>(HttpStatus.NOT_FOUND);
                }           
            }
    
            return new ResponseEntity<HttpStatus>(HttpStatus.OK);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 2019-10-14
      • 1970-01-01
      • 2018-10-26
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 2019-11-18
      相关资源
      最近更新 更多