gpt4 book ai didi

python - 在 Django 中使用推送器对用户进行身份验证

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:06 25 4
gpt4 key购买 nike

我对使用推送器在 Django 中的身份验证如何工作感到有点困惑 我想实现一对一聊天系统,所以我想我将使用需要身份验证才能订阅 channel 的私有(private) channel 。 .. 我读了there端点是您希望推送器发布到的 url,我添加了一个 url 来测试它是否有效,但每次状态返回 403 并且它似乎没有进入我创建的用于测试它的 View 所以有什么想法吗?这是我的代码示例:

message.html

var channel = pusher.subscribe('private-test');
channel.bind('message', function(data) {
var $message = $('<div class="message"/>').appendTo('#messages');
$('<span class="user"/>').text(data.user).appendTo($message);
$('<span/>').text(data.message).appendTo($message);
});;

Pusher.channel_auth_endpoint = 'test/';
Pusher.channel_auth_transport = 'ajax';

channel.bind('pusher:subscription_succeeded', function(status) {
alert(status);
});

channel.bind('pusher:subscription_error', function(status) {
alert(status);
});

Views.py:

def testUser(request,user_name):
print 'Test Passed'
return render_to_response('message.html', {
'PUSHER_KEY': settings.PUSHER_KEY,'channel_variable':request.user.id,'other_var':'3',
}, RequestContext(request))

当我检查它发布到的 url 时,在我的 cmd 中我发现它是正确的并且它与我在 urls.py 中输入的相匹配但我仍然不知道为什么它没有进入我的 View

最佳答案

我不了解 Django,但框架很有可能正在拦截调用以防止 CSRF (Cross site resource forgery) .

Django 文档在这里讨论 CSRF: https://docs.djangoproject.com/en/dev/ref/contrib/csrf/

与许多框架一样,您需要提供一个 CSRF token 作为对 authentication endpoint 的 XHR/AJAX 调用的一部分。 ,或覆盖框架拦截(以某种方式)。

查看 Pusher 构造函数的 auth 部分 options parameter .在那里您会找到一个如何传递 CSRF token 的示例。

关于python - 在 Django 中使用推送器对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057365/

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