• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

blog.py 의 set_email 데코레이터 함수의 login_user 질문입니다.

21.09.22 21:39 작성 조회수 207

1

안녕하세요! 질 좋은 강의에 감사 인사 드립니다. 다름이 아니라 질문이 있어서요! 제가 웹 개발은 처음이라서 강사님께서 말씀하시는 부분을 주석으로 일일이 적어놓고 회고하면서 이해하고 있는데요! 어느정도 이해한 느낌인데 약간의 궁금증이 있어 질문드려요! 제가 질문이 생기는 부분은 아래의 사고의 흐름 중에 발생하는데요!

1. blog.py의 set_email 데코레이터 함수 내부에서는...

user = User.create(request.form['user_email'], 'A') -> 신규 유저에 대한 정보를 생성해 로컬 MySQL에 넣고 유저 객체 생성

login_user(user) -> Flask에서 위에서 만든 유저 객체를 세션으로 만든 후 Flask 웹 서버로 http 전송. 그리고 이 세션을 저장해놓고 난 후 나중에 동일한 유저가 리퀘스트를 날리면 Flask 웹서버에서는 기존에 저장해놓은 세션을 꺼내어 확인 후 그에 맞은 response를 클라이언트에게 응답해주도록 해줌 

return redirect(url_for('blog.test_blog')) -> 해당 URI로 리다이렉션해서 접근

Q. 이 때, login_user(user)를 해주고 웹 서버를 호스팅했을 때랑 login_user(user)를 그냥 주석처리하고 적용하지 않은 상태에서 웹 서버를 호스팅했을 때랑 어떤 차이점이 있는 건가요? 제가 직접 비교 실험을 해보긴 했는데 잘 와닿지 않아서 질문 드립니다!

 

 

 

답변 1

답변을 작성해보세요.

2

안녕하세요. 오호 회고하시면서, 하신다니, 대단하십니다. 강의를 좋게 생각해주시는 것 같아서, 저도 기쁘네요.

login_user(user) 를 안해주면, 세션 정보가 생기지 않을 수 있고요.

그렇다면, 만약 로그인 후 접근할 수 있는 웹페이지가 여러개일 경우, 

각 웹페이지마다, 이 사람이 지금 로그인을 했는지 안했는지를 세션 정보로 구분하는데, 이런 기능이 정상동작하지 않을 수 있습니다.

일종의 flask 의 login 라이브러리에, 이 사람이 로그인 했으니, 이제 잘 관리해다오 라는 등록 절차라고 보시면 어떨까요?

물론 이 부분들에 대해, 영상에서 설명을 드리고 있기 때문에, 어느 챕터 몇분 몇초인지 명확히 제가 지금 찾아드리기는 어렵지만, 여러 영상을 다시 훑어보시면, 해당 부분을 좀더 상세히 설명한 부분도 있으니, 이 부분도 참고해보시면 좋을 것 같습니다.

감사합니다.

 

빠른 답변 감사드립니다! 진도를 빨리 나가지 않고 천천히 하나씩 반복해 숙달할때까지 체득 후에 다음 강의로 넘어가느라 완강 하는 데 시간이 예상보다 길어지네요! 얼른 완강하고 그동안 릴리즈하신 커리큘럼 따라가겠습니다! 설명 감사합니다 :)