def login_view(request): next = request.GET.get('next') form = LoginForm(request.POST or None) if form.is_valid(): email = form.cleaned_data.get('email') password = form.cleaned_data.get('password') user = authenticate(email=email, password=password) login(request, user) if next: return redirect(next) return redirect('/home') return render(request, "login.html", {'form': form})
def create(self, request): form = LoginForm(request.DATA) if form.is_valid(): email = form.cleaned_data["email"] password = form.cleaned_data["password"] logged_in_user = authenticate(email=email, password=password) if logged_in_user: try: token, created = Token.objects.get_or_create( user=logged_in_user) if created: token.save() return Response({'token': token.key, 'success': True}, status=200) except Token.DoesNotExist: pass return Response({'token': None, 'success': False, "message": "incorrect email or password"}, status=401) else: return Response({'token': None, 'success': False, "message": form.errors}, status=400)
def login_view(request): if 'platform' in request.GET and request.GET['platform'] == 'android': username = request.GET['username'] password = request.GET['password'] user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) return HttpResponse('ok') else: return HttpResponse('not_active') else: return HttpResponse('wrong') else: login_form = LoginForm(request.POST) if login_form.is_valid(): user = authenticate(username=login_form.cleaned_data['username'], password=login_form.cleaned_data['password']) if user is not None: if user.is_active: login(request, user) return HttpResponseRedirect(reverse('api:main_page')) else: return HttpResponse( 'you cannot login because you are blocked.') else: return HttpResponse( 'username or password is wrong. please check your spelling and try again...' ) else: event_list = Post.objects.filter( author__is_formal=True, is_public=True).order_by('-publish_time') return render(request, 'api/index.html', { 'form': login_form, 'event_list': event_list })