我无法在网上找到有关此问题的任何信息,所以我打算把它放在这里!
我正在使用一个前端应用程序,它使用auth_views.LoginView
等重定向到后端(django-oauth-toolkit)上的自定义client_id
。我已经完成了所有这些工作。 (我正在使用隐式授权,顺便说一句)。
问题是当用户注销时,我使用/o/revoke_token
,它成功地从数据库中删除了令牌。但是,当用户转身并重新登录时,它再也不会提示他们输入用户名/密码。 auth_views.LoginView
将给出302并使用有效的api_key
重定向回前端。
我怎么能阻止这个?我想提示用户每次访问该页面的用户名/密码。这样,如有必要,他们可以注销并使用其他用户重新登录。
我遇到了同样的问题,如果我没弄错的话,那是因为你需要实际注销。
目前,您的用户仍然登录,因此客户端将要求新令牌,您的auth服务器将检查用户是否正确登录,是否会发现是,并且只提供新令牌而不是重定向。
编辑:这不是一个好的解决方案。看看ZaX提供的其他答案。
为了跟进这一点,我最后通过将SESSION_COOKIE_AGE
设置为一个小数字3来修复它,以允许登录,但不能保持用户会话活着。这将强制他们重新输入用户名/密码,但只要您有访问令牌,就没有必要从后端请求会话。