django user auth + gwt

时间:2009-12-15 06:12:04

标签: django gwt authentication

我有一个django服务器应用程序,它使用JSON与gwt前端通信。我想向用户介绍用户身份验证,并开始合并the framework provided by django。此时我已设置服务器以在必要时使用用户身份验证表单进行响应(使用上面链接中描述的@login_required装饰器方案),但我不确定如何在GWT中执行此操作。

如果你正在使用带有django的GWT并且已经实现了用户身份验证,那么听听你如何设置它会很棒。

感谢。

2 个答案:

答案 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,但您可以设置在需要登录时返回的内容。

例如,您可以返回一条消息,以便客户端可以使用身份验证表单提示用户。当然,您需要在每个调用中考虑这种情况,但是您可以创建一个抽象请求类来执行此操作。