python
@app.route('/sign_in', methods=['POST'])
def sign_in():
# 로그인
username_receive = request.form['username_give']
password_receive = request.form['password_give']
pw_hash = hashlib.sha256(password_receive.encode('utf-8')).hexdigest()
result = db.users.find_one({'username': username_receive, 'password': pw_hash})
if result is not None:
payload = {
'id': username_receive,
'exp': datetime.utcnow() + timedelta(seconds=60 * 60 * 24) # 로그인 24시간 유지
}
token = jwt.encode(payload, SECRET_KEY, algorithm='HS256').decode('utf-8')
return jsonify({'result': 'success', 'token': token})
# 찾지 못하면
else:
return jsonify({'result': 'fail', 'msg': '아이디/비밀번호가 일치하지 않습니다.'})
로그인후 메인페이지
cookies에서 토큰가져옴
시크릿키를 통해서 토큰을 복호화해서 payload를 꺼내줌 -> 아이디꺼내줌
아이디가 있으면 메인페이지 ! 없으면 error
- 쿠키 : 브라우저 자체 데이터베이스 (브라우저에 저장되어 있는 정보)
=> 서버가 발급해준 자유이용권이라고 생각하면 된다 !
=> 브라우저 자체에 저장되어있기 때문에 익스플로러 -> 크롬 하면 다시 로그인해야함
=> 로그인 이후부터는 서버에게 요청을 보낼 때마다 쿠키가 같이 따라다닌다.
1. 아이디 패스워드 서버로전달
2. 서버는 db에서 사용자정보가 있는지 확인
3. 확인해서 있으면 토큰을 만들어서 클라이언트한테 전달
4. 클라이언트는 그 토큰을 쿠키에 저장!