Django - 具有REST登录支持的自定义会话

时间:2014-06-18 16:05:14

标签: django django-rest-framework django-sessions

我们需要使用自定义会话实现Django应用程序。 我们需要的: - 登录正在通过REST完成 - Django只是REST服务的包装器

我可以在django中使用一些自定义会话之王来支持通过REST登录吗? (拉特假设我会通过休息发送登录名和密码)

您能为这种用例建议任何内置解决方案或第三方库吗?

2 个答案:

答案 0 :(得分:1)

我认为您在django和任何第三方lib中都不需要任何类型的自定义会话。 Django会话应用程序与其他django-applications(在您的情况下为auth)没有强大的(sql-)关系。如果您想通过REST服务登录,只需编写登录功能并将结果放入会话中。像这样:

def login(login, pass):
  return urllib.urlget('https://mysite.io/login?user=%s&pass=%s'%(login, pass))

def my_veiew(request):
  if request.method=='POST':
    request.session['user']=login(request.POST['user'], request.POST['pass'])
    return HttpResponseRedirrect('somewhere')
  return TemplateResponse(request, 'template.html', {'form': form})

请注意,您可以在会话中放置任何类型的python对象,例如您自己的包装器类。这就是为什么我非常喜欢django会话! =)

您可以找到有关django session here的更多信息,并选择适合您项目的会话后端类型。

干杯!

答案 1 :(得分:0)

查看Django REST框架中的built-in authentication classes以及third party packages。其中一个可能是你正在寻找的东西。