【发布时间】:2018-12-27 02:01:49
【问题描述】:
我创建了 OAuth 2.0 服务器和一些客户端,但我不知道如何使用 SSO 注销。当我在注销后单击登录时,我不再需要用户名和密码。我想“真的”登录。据说这是一个棘手的问题
https://spring.io/guides/tutorials/spring-security-and-angular-js/
所以任何人都可以给我一些想法来解决它。
【问题讨论】:
标签: oauth-2.0
我创建了 OAuth 2.0 服务器和一些客户端,但我不知道如何使用 SSO 注销。当我在注销后单击登录时,我不再需要用户名和密码。我想“真的”登录。据说这是一个棘手的问题
https://spring.io/guides/tutorials/spring-security-and-angular-js/
所以任何人都可以给我一些想法来解决它。
【问题讨论】:
标签: oauth-2.0
使用以下代码实现注销功能
@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);
}
}
【讨论】: