最近在做一个基于Keycloak集成单点登录的项目,在本地运行的Keycloak Server端进行开发自测,开发完成后把项目打包扔到虚拟机上测试一下,但是在登录之后总是返回403状态码,但是在本地测试的时候确实正常的,排查一下代码和keycloak的配置,也没毛病啊,一脸懵逼,无意中看了一下Keycloak Server的控制台,发现keycloak server控制台报错了,哈哈,终于看到一个报错了,有问题不怕,就怕出问题了程序没有抛出任何异常。好了言归正传,看看报了什么错吧?
Keycloak Server : failed verification of token: Token is not active.
根据错误提示,是因为单点登录认证失败了,token失效了,导致我的系统返回403.
那么来看看Token is not active是什么原因造成的:
上google查了一下,看到一篇文章[SOLVED] Keycloak 1.9.1.Final- failed verification of token: Token is not active
原来是我的系统所在的服务器与Keycloak Server所在服务器不在同一个时区导致的,查看了一下两个服务器时间,一个时北京时间,一个时美国东部时间,相差了12个小时。
接下来同步了一下两个服务器的时间,重新测试,已经可以正常访问了,搞定!