我有一个django服务器应用程序,它使用JSON与gwt前端通信。我想向用户介绍用户身份验证,并开始合并the framework provided by django。此时我已设置服务器以在必要时使用用户身份验证表单进行响应(使用上面链接中描述的@login_required装饰器方案),但我不确定如何在GWT中执行此操作。
如果你正在使用带有django的GWT并且已经实现了用户身份验证,那么听听你如何设置它会很棒。
感谢。
答案 0 :(得分:1)
自动测试项目使用gwt和django组合。查看http://autotest.kernel.org/browser/trunk/frontend源代码。具体来说,我会修改http://autotest.kernel.org/browser/trunk/frontend/afe/json_rpc/serviceHandler.py并添加类似下面的内容(这将过滤登录,注销和is__logged__in以及所有其他函数,它将调用request.user.is_authenticated()以确保所有其他json rpc受到保护)
def invokeServiceEndpoint(self, meth, request, response, args):
if meth.func_name == "login" or meth.func_name == "logout" or meth.func_name == "is_loggedin":
return meth(request, *args)
else:
if request.user.is_authenticated():
return meth(request.user, *args)
else:
from studio.rpc_exceptions import AccessDeniedException
raise AccessDeniedException()
答案 1 :(得分:-1)
我从未使用过Django,但您可以设置在需要登录时返回的内容。
例如,您可以返回一条消息,以便客户端可以使用身份验证表单提示用户。当然,您需要在每个调用中考虑这种情况,但是您可以创建一个抽象请求类来执行此操作。