gpt4 book ai didi

django - 如何使用 Django 身份验证在 Node 应用程序中对用户进行身份验证?

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:13 25 4
gpt4 key购买 nike

我的主要应用程序是一个 Django 应用程序,但是,对于一些实时的东西,我想使用 Node/Socket.IO。我正在使用 Redis 做一些从 Django 到 Node(然后到各种客户端)的发布/订阅。棘手的部分是如何根据 Django 身份验证 Node 用户的身份验证?

在我的 Node 应用中,我有:

io.on('connection', function (socket) {
const subscribe = redis.createClient();
var userId = authenticateAndGetUserId();
subscribe.subscribe(userId + ':feed-items');

subscribe.on('message', function (channel, message) {
socket.emit('feed-items', JSON.parse(message));
});

});

所以我的问题是什么是实现 authenticateAndGetUserId 的好策略?这些 session 在 MySQL 中得到支持,所以我可以通过它。只是好奇是否有更好的方法。

最佳答案

在 Django 方面,我会公开一个 REST API。然后在 Node.js 上你可以做一些像 POST username/password to

http://yourdjangoserver.com/authenticate

这将返回一些包含您需要的信息的 JSON。如果您希望保护 API 免受公众监督,那么要么将其设为私有(private),要么使用基本身份验证之类的方式对其进行保护。

restify 是一个 npm 包,它使得在 Node.js 端使用 REST API 变得非常容易。这种架构的好处是它是松散耦合的。您可以用任何东西替换 Django,而客户永远不会知道。

关于django - 如何使用 Django 身份验证在 Node 应用程序中对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10467802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com