Kim*_*cks 6 django qr-code jwt-auth
我正在为我的 web 应用程序使用 Django 2.2。
而且我一直在寻找适合使用移动应用程序通过二维码交叉登录到 webapp 的教程。
基本上工作流程是这样的:
我不太明白后端的移动和网络应用程序如何相互协作以无缝实现这一目标。
我确实找到了这个似乎不再维护的库https://github.com/aruseni/django-qrauth。但是我仍然不太明白移动应用程序和 webapp 后端之间的流程是如何工作的。
我还发现这个https://medium.com/@ksarthak4ever/django-two-factor-authentication-2ece42748610似乎将手机用作 2FA 设备。除非我误解了,否则不完全是我正在寻找的用例。
我确实找到了这篇文章https://backendless.com/how-to-implement-mobile-to-web-cross-login-using-a-qr-code/这就是给我“交叉登录”这个词的原因。然而,这篇文章严重倾向于这个特定的供应商。
我正在寻找对概念的“理解”,而不依赖于供应商实现的细节。
如果我的问题措辞不当并被误解,我将本节包含在内以明确我不寻找的内容。
我不是在寻找二维码作为身份验证器应用程序的 2FA 确认的用例。
我还没有查看代码示例。我只想首先清楚地了解移动和网络应用程序之间的工作方式。尽管我在猜测,但我相信 JWT 是必需的。
工作流比实际代码更受欢迎,因为我想首先了解它是如何工作的。
关键概念是当用户和浏览器匹配时就会发生登录。用户是指已经被服务器识别(认证)的用户(或用户设备)。
我将用 Django-channels Web 套接字框架来解释它。(在这种情况下,登录请求密钥和频道名称相同。但不同的密钥和频道名称也可以。)
Django-channels[redis]名为该字符串(FOO) 的通道。将密钥(FOO)发送到用户的浏览器。登录请求密钥(FOO)可以是 JWT(包含密钥、url、过期等)或只是安全字符串(根据场景而变化)。它不包含帐户信息,服务器必须存储它。
登录密钥(BAR)通常是 JWT。使用 JWT,它包含帐户信息,服务器不必存储密钥。(无状态)
我想你想做一些像 WhatsApp\xe2\x80\x99s web 这样的事情,用户通过 QR 码登录到网络应用程序,如果我正在做这样的实现,我\xe2\x80\x99ll 会按如下方式执行。
\n希望这足够清楚。
\n| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |