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

问题描述 投票:0回答:2

我无法在网上找到有关此问题的任何信息,所以我打算把它放在这里!

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

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

我怎么能阻止这个?我想提示用户每次访问该页面的用户名/密码。这样,如有必要,他们可以注销并使用其他用户重新登录。

django oauth django-rest-framework django-sessions django-oauth
2个回答
1
投票

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

目前,您的用户仍然登录,因此客户端将要求新令牌,您的auth服务器将检查用户是否正确登录,是否会发现是,并且只提供新令牌而不是重定向。


0
投票

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

为了跟进这一点,我最后通过将SESSION_COOKIE_AGE设置为一个小数字3来修复它,以允许登录,但不能保持用户会话活着。这将强制他们重新输入用户名/密码,但只要您有访问令牌,就没有必要从后端请求会话。

© www.soinside.com 2019 - 2024. All rights reserved.