항해99 시작과 동시에 첫번째 미니과제 회고
app.py 로그인 기능이 에러 (AttributeError: ‘str’ object has no attribute ‘decode’)
pyjwt 기존 버전에서는 jwt.encode()함수의 리턴값이 '바이트 문자열'이라는 자료형이었기 때문에 뒤에 .decode('utf-8')를 붙여 일반 문자열로 바꾸어 주었음. 2.0.0 버전부터는 이 함수의 리턴값이 일반 문자열이기 때문에 여기에 또 .decode('utf-8')를 붙여주게 되면 문자열에는 이런 메소드가 없으므로 에러가 난다.
(101100100110 같은 바이트 자료를 문자열로 바꾸는 것이 decode)
pyjwt 2.0.0 버전
#서버 로그인기능
@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')
return jsonify({'result': 'success', 'token': token})
# 찾지 못하면
else:
return jsonify({'result': 'fail', 'msg': '아이디/비밀번호가 일치하지 않습니다.'})
token = jwt.encode(payload, SECRET_KEY, algorithm='HS256').decode('utf-8')
부분을 token = jwt.encode(payload, SECRET_KEY, algorithm='HS256') 바꾸거나 jwt 2.0.0버전을 이전 버전으로 바꾼다.
로그인 후 뒤로가기 하면 로그인 되서 보여지던 페이지가 나오는 것 방지.
@app.after_request
def after_request(response):
response.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
return response
after_request: HTTP 요청이 들어올때마다 실행
Cache-Control: 캐시 지시어(directives)-확실한 캐시 무효화
aws 서버에 배포했을 때 서버에 접속이 안되는 현상.
if name == 'main':
app.run('0.0.0.0', port=5000, debug=True)
app.py에서 app.run('0.0.0.0', port=5000, debug=True)를 해줘야 모든 호스트가 접속이 가능하다.
항해99 시작과 동시에 프로젝트가 진행되었다. 시작하기 전 사전강의를 듣고 시작하지만 부트캠프가 시작하는 동시에 강의를 더 제공해 주고 팀을 짜줘서 5일동안 팀끼리 스스로 프로젝트를 시작한다. 같은 팀에 만난 사람들은 다들 훌륭하고 좋은 분들어여서 혼자서는 생각도 못한 것을 같이 해서 만들 수 있었다. 팀원분들이 고생을 많이해서 끝낼 수 있었던 것 같다. 프로젝트를 시작하면서 가장 힘들고 시간을 많이 쓰게 만든 것은 깃을 사용하는 것이였다. 깃은 잘 사용하면 협업에 좋지만 잘 쓰지 못하면 골치덩어리에 불과했다. 주말에 깃 터미널 말고도 소스트리도 같이 사용해보도록 해야겠다.
또한 로컬에서 잘 작동 되는데 aws에서 배포하면 제대로 안되거나 접근 조차도 막아버려서 식겁하였다. 나중에 배포할때 오류체크 시간도 필요한거 같다.
다른 팀원이 만든 페이지를 보면서 내가 더 페이지를 꾸미고 클라이언트와 서버와의 통신도 더 많이 해보았다면 하는 아쉬움이 많이 남는다. 이번을 계기로 다음 협업에서는 더욱 자기주도적이고 열정적으로 성장할 수 있는 개발자가 되도록 해야겠다.
https://github.com/lipton-web/sparta_kcal_1/blob/kimbumsoo0820/readme.md