def login_view(request): if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): form.login(request) return redirect('posts:post-list') else: form = LoginForm() login_base_url = 'https://nid.naver.com/oauth2.0/authorize' login_params = { 'response_type': 'code', 'client_id': 'vlffjTerqGRY684xV6_O', 'redirect_uri': 'http://localhost:8000/members/naver-login/', 'state': 'RANDOM_STATE', } login_url = '{base}?{params}'.format( base=login_base_url, params='&'.join( [f'{key}={value}' for key, value in login_params.items()])) context = { 'form': form, 'login_url': login_url, } return render(request, 'members/login.html', context)
def log_in(request): if request.method == 'POST': login_form = LoginForm(request.POST) if login_form.is_valid(): login_form.login(request) return redirect('chat:index') else: return HttpResponse('Login credential invalid') else: login_form = LoginForm() context = { 'login_form': login_form, } return render(request, 'member/login.html', context)
def user_login(request): next_url = request.GET.get('next') if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): form.login(request) if next_url: return redirect(next_url) return redirect('post:post_list') else: form = LoginForm() context = { 'login_form': form, 'facebook_app_id': settings.FACEBOOK_APP_ID, 'scope_fields': settings.FACEBOOK_SCOPE['scope'], } return render(request, 'member/login.html', context)
def login(request): # if 'HTTP_REFERER' not in request.GET: if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): form.login(request) pk = request.GET["post_pk"] # 로그아웃 상태로 댓글을 달았을 때, 로그인이 성공하면 댓글 생성 if 'comment' in request.GET: comment = request.GET["comment"] if comment: post = Post.objects.get(pk=pk) PostComment.objects.create( post=post, author=User.objects.get(username=form.cleaned_data['username']), content=comment, ) url = request.GET['url'] + f'#post.{pk}' return redirect(url) if url else redirect('main') else: form = LoginForm() # login view get 호출시 기본 값 context = { 'form': form, 'url': request.META['HTTP_REFERER'], # login 을 호출한 페이지 url 'post_pk': '', 'comment': '', 'facebook_app_id': settings.FACEBOOK_APP_ID, 'facebook_scope': settings.FACEBOOK_SCOPE, } # (비로그인 댓글 작성시 실행) # url get parameter 에 해당 값이 있으면 context 에 넣어 줌 for param in ['url', 'post_pk', 'comment']: if param in request.GET: context[param] = request.GET[param] return render(request, 'member/login.html', context)