我不确定我是否以适当的方式使用Django会话。要登录,我使用此视图和URL:
url(r'^login/$', views.my_login)
from django.contrib.auth import authenticate, login
@api_view(['POST'])
def my_login(request):
if request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
request.session.set_expiry(86400)
login(request, user)
在每种需要身份验证的方法中,我都使用if request.user.is_authenticated()
或@login_required
如果这是一个好方法,我如何同时使用@api_view(['GET', 'POST'])
和@login_require
?
在我看来,这不是一个好的解决方案:
@login_require
@api_view(['GET', 'POST'])
def my_func(request):
#...
有更好的方法吗?
答案 0 :(得分:0)
由于您使用的是django-rest-framework,我建议使用默认的身份验证方式。
使用@authentication_classes((SessionAuthentication,BasicAuthentication))