0

我在网上找不到任何关于这个问题的信息,所以我要把它放在这里!

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

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

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

4

2 回答 2

1

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

目前,您的用户仍处于登录状态,因此客户端将请求新令牌,您的身份验证服务器将检查用户是否正确登录,会发现是,并且只需提供新令牌而不是重定向。

于 2019-04-25T16:34:32.407 回答
0

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

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

于 2019-03-07T14:44:12.993 回答