def alipay_login_done(request): redirect_url = reverse('index') if 'redirect_url' in request.session: redirect_url = request.session['redirect_url'] if 'error' in request.GET or 'auth_code' not in request.GET: return HttpResponseRedirect(redirect_url) auth_code = request.GET.get('auth_code') oauth_alipay = OauthAlipay( settings.ALIPAY_URL, settings.ALIPAY_APPID, PRIVATE_KEY_PATH, settings.ALIPAY_FORMAT, settings.ALIPAY_CHARSET, PUBLIC_KEY_PATH, settings.ALIPAY_SIGN_TYPE, settings.ALIPAY_LOGIN_REDIRECT_URI ) try: access_token = oauth_alipay.get_access_token(auth_code) user = oauth_alipay.get_blog_user() login(request, user) request.session.set_expiry(604800) response = HttpResponseRedirect(redirect_url) response = set_logged_in_cookies(request, response, user) return response except Exception as e: logger.error(e) return HttpResponseRedirect(redirect_url)
def post(self, request, *args, **kwargs): form = LoginForm(request.data) if not form.is_valid(): raise serializers.ValidationError(form.errors) email = form.cleaned_data.get('account') user = User.objects.using('read').get(email=email) login(request, user) if request.data.get('remember') == 'true': request.session.set_expiry(604800) else: request.session.set_expiry(0) redirect_url = request.data.get('redirect_url', '').replace('#', '') if redirect_url == '': redirect_url = reverse('index') response = Response({ 'code': '200', 'msg': '登录成功', 'redirect_url': redirect_url }) response = set_logged_in_cookies(request, response, user) return response
def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) user = serializer.instance login(request, user) # send email to notice users when register successfully redirect_url = request.data.get('redirect_url', '').replace('#', '') if redirect_url == '': redirect_url = reverse('index') response = Response({ 'code': 200, 'msg': '注册成功', 'redirect_url': redirect_url }) response = set_logged_in_cookies(request, response, user) return response
def wechat_login_done(request): redirect_url = reverse('index') if 'redirect_url' in request.session: redirect_url = request.session['redirect_url'] if 'error' in request.GET or 'code' not in request.GET: return HttpResponseRedirect(redirect_url) code = request.GET.get('code') oauth_wechat = OauthWechat(settings.WECHAT_APP_KEY, settings.WECHAT_APP_SECRET, settings.WECHAT_LOGIN_REDIRECT_URI) try: access_token = oauth_wechat.get_access_token(code) user = oauth_wechat.get_blog_user() login(request, user) request.session.set_expiry(604800) response = HttpResponseRedirect(redirect_url) response = set_logged_in_cookies(request, response, user) return response except Exception as e: logger.error(e) return HttpResponseRedirect(redirect_url)