user/join.html
$('#join_button').click(function () {
let email = $('#input_email').val();
let name = $('#input_name').val();
let password = $('#input_password').val();
let nickname = $('#input_nickname').val();
console.log(email);
$.ajax({
url: "/user/join",
data: {
email: email,
nickname: nickname,
password: password,
name: name
},
method: "POST",
success: function (data) {
console.log("성공");
alert("회원가입 성공");
location.replace('/user/login');
},
error: function (request, status, error) {
console.log("실패");
},
complete: function () {
console.log("완료");
}
})
});
user/login.html
$('#login_button').click(function () {
let email = $('#input_email').val();
let password = $('#input_password').val();
console.log(email);
$.ajax({
url: "/user/login",
data: {
email: email,
password: password,
},
method: "POST",
success: function (data) {
console.log("성공");
alert("로그인 성공");
location.replace('/');
},
error: function (request, status, error) {
console.log("실패");
},
complete: function () {
console.log("완료");
}
})
});
user/views.py
def post(self, request):
# 로그인
email = request.data.get("email", None)
password = request.data.get('password', None)
user = User.objects.filter(email=email).first()
if user is None:
return Response(status=404, data=dict(message="회원정보가 잘못되었습니다.")) # 해킹 방지
if user.check_password(password):
# 로그인을 했다. 세션 or 쿠키에 넣는다.
request.session['email'] = email
return Response(status=200)
else:
return Response(status=400, data=dict(message="회원정보가 잘못되었습니다.")) # 해킹 방지
content/views.py
email = request.session['email']
if email is None:
return render(request, 'user/login.html')
user = User.objects.filter(email=email).first()
if email is None:
return render(request, 'user/login.html')
return render(request, 'jinstagram/main.html', context=dict(feed_list=feed_list, user=user))
main.html
{{ user.nickname }}
{{ user.name }}