django-oauth-toolkit注销问题,每次都不提示用户输入用户名/密码

时间:2019-03-05 21:08:42

标签: django oauth django-rest-framework django-sessions django-oauth

在网上的任何地方都找不到有关此问题的任何信息,因此将其放在这里!

我正在使用一个前端应用程序,该应用程序使用auth_views.LoginView重定向到后端(django-oauth-toolkit)上的自定义client_id,依此类推。我已经完成了所有这些工作。 (我正在使用隐式授予,顺便说一句)。

问题是当用户注销时,我使用/o/revoke_token,它成功地从数据库中删除了令牌。但是,当用户转身并重新登录时,它再也不会提示他们输入用户名/密码。 auth_views.LoginView将给出302,并使用有效的api_key重定向回到前端。

如何防止这种情况?我想每次提示用户时,都点击该页面以输入用户名/密码。这样,他们可以注销并在需要时使用其他用户重新登录。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,如果我没记错的话,那是因为你也需要注销。

此刻,您的用户仍在登录,因此客户端将要求新的令牌,身份验证服务器将检查用户是否已正确登录,确定是,仅提供新的令牌重定向。

答案 1 :(得分:0)

编辑:这不是一个好的解决方案。查看ZaX提供的其他答案。

为解决此问题,我最终通过仅将SESSION_COOKIE_AGE设置为一个较小的数字3来进行修复,以允许登录,但没有使用户会话保持活动状态。这将迫使他们重新输入用户名/密码,但是只要您具有访问令牌,就不必从后端请求会话。