[keycloak-user] API not protected immediately after logout
José Miguel Gonçalves
jose.goncalves at inov.pt
Wed Mar 21 10:40:02 EDT 2018
The 'connect.sid' token is set by the Node.js server example code at
https://github.com/keycloak/keycloak-quickstarts/tree/latest/service-nodejs
The issue is related with that example code, so I was trying to get info
on what needs to be changed/corrected on it, to correctly secure a
Node.js REST API with Keycloak.
The Keycloak's documentation for the Node.js Adapter
(http://www.keycloak.org/docs/latest/securing_apps/index.html#_nodejs_adapter)
is in sync with the example code, so I assume that something is missing
on the logout procedure...
On 03/21/2018 02:21 PM, Stian Thorgersen wrote:
> I don't know what the connect.sid cookie is. Sounds like there's some
> sort of logged-in session between your app and the nodejs app that
> doesn't have anything to do with keycloak.js
>
> keycloak.js clears tokens on logout. You should invoke the node.js
> services with the bearer token. There's no need to have a session
> cookie between the app and service.
>
> On 21 March 2018 at 12:02, José Miguel Gonçalves
> <jose.goncalves at inov.pt <mailto:jose.goncalves at inov.pt>> wrote:
>
> Digging a little bit more on this issue, I found that the session
> is still alive after logout because of a 'connect.sid' cookie set
> in the browser that was written by the Node.js server. As this
> cookie has the HttpOnly flag set, it can not be cleared on the
> client side.
>
> So my question is, what needs to be changed on the example code
> ('service-nodejs' and/or 'app-jee-html5') to terminate the session
> (and clear 'connect.sid' cookie) immediately after I press the
> logout button?
>
>
> On 21-03-2018 00:17, José Miguel Gonçalves wrote:
>> Shouldn't this be a task for the JavaScript adapter, i.e., the
>> logout method should not perform this automatically for us?
>>
>> It seems to me that tokens clearing should be transparent to the
>> app user, because if tokens are implicitly created on the login
>> procedure, they should also be implicitly cleared on the logout.
>>
>> On 20-03-2018 20:43, Stian Thorgersen wrote:
>>> Unless the service calls the token introspection endpoint it
>>> won't know that the access token has expired until it actually
>>> expires. That is the cause of the slight delay from logout. The
>>> app should really clear the tokens after logout.
>>>
>>> On 20 March 2018 at 20:07, José Miguel Gonçalves
>>> <jose.goncalves at inov.pt <mailto:jose.goncalves at inov.pt>> wrote:
>>>
>>> Hi,
>>>
>>> To test a scenario of a Node.js RESTfull service secured by
>>> Keycloak
>>> (3.4.3.Final), I've setup a Node.js server and a HTML5
>>> client using
>>> example code from
>>> https://github.com/keycloak/keycloak-quickstarts
>>> <https://github.com/keycloak/keycloak-quickstarts>
>>> ('service-nodejs' and 'app-jee-html5').
>>> While everything seems fine at first glance, there is an
>>> issue after I
>>> logout on the app.
>>> After logging out, I see that I continue to have access to
>>> the protected
>>> endpoints for some short time (about 1 minute after logout).
>>> Am I missing some configuration or is this a bug on Keycloak?
>>>
>>> Regards,
>>> José Gonçalves
>>>
>
More information about the keycloak-user
mailing list