본문 바로가기
Note/Record

POSTMAN 회원가입, 로그인, 비밀번호 변경, 회원탈퇴

by sooyeoon 2021. 7. 22.

회원가입

초반에 POST로 설정하고 url을 제대로 입력, form-data에 맞게 정보를 입력하여 send했음에도 오류가 발생했었는데, 알고보니 vscode에서 main.py파일을 수정해놓고 ctrl+s로 저장하지 않은 상태에서 postman으로 데이터 입력을 시도해서 오류가 발생했었다ㅎ_ㅎ 저장꼭확인할것..

vscode의 SQLite에서 사용자 정보가 저장되었음

 


 

로그인

주소 signin 으로 변경 후, 

로그인에 필요한 정보를 입력한 뒤 send

오류가 발생했는데, return 값을 jsonify로 변환하는 과정에서 딕셔너리 형태로 입력해주지 않아서 발생한 문제였다.

"UserModel을 JSON 상태로 변환할 수 없다."

JOSN 상태로 변환하기 위해 딕셔너리 형태로 코드를 변경

변경전 코드 - return jsonify(user)
변경후 - 딕셔너리 형태 

변경후 !저장!까지 한 뒤, 다시 postman 에서 send

정보가 잘 확인되었다!

 

필요한 모듈 import 및 초기 설정

회원가입

로그인


비밀번호 변경

탐색기 탭에서 main.db 오른쪽마우스 클릭 -> open database -> 하단의 SQLITE EXPLORER 의 user table -> show Table로 user 정보 확인

 -> 하단의 SQLITE EXPLORER 의 user table -> show Table로 user 정보 확인

user Table

POSTMAN에서 PATCH로 설정후 주소/user/password 를 입력하고

Body → form-data에서 username과 password 를 입력한 뒤 new_password, 새로운 password를 지정해준다.

send 를 누른뒤 SUCCESS가 출력되면 비밀번호가 변경되었음을 확인할 수 있다.

또한 POSTMAN에서 POST방식으로 signin 페이지에서 비밀번호를 변경하기 전의 아이디와 비밀번호를 입력하면 

No User로 나타나는 것을 확인할 수 있다.

 

회원정보 삭제

postman에서 DELETE로 설정, 주소를 /user로 입력, form data에서 

삭제할 회원의 username과 password를 입력

send를 누르면 SUCCESS -> 삭제되었음을 확인

 


http 상태코드 기능 추가하기 

Status 번호 변경하기

import에 Response추가

from flask import Flask, jsonify, request, Response

회원가입 부분에서 추가로 코드 수정

return Response("SUCCESS"status=201)

HTTP 표준에 따라 status code를 변경하였음 

 

* 만약 사용자가 데이터를 잘못입력하였을 경우 내려줄 수 있는 상태코드

더보기

204 No Content

요청에 대해서 보내줄 수 있는 콘텐츠가 없지만, 헤더는 의미있을 수 있습니다. 사용자-에이전트는 리소스가 캐시된 헤더를 새로운 것으로 업데이트 할 수 있습니다.

서버는 통신되고 있지만 사용자의 입력이 잘못되었음을 알려줌

 

더보기

400 Bad Request

이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미합니다.

 

더보기

404 Not Found

서버는 요청받은 리소스를 찾을 수 없습니다. 브라우저에서는 알려지지 않은 URL을 의미합니다. 이것은 API에서 종점은 적절하지만 리소스 자체는 존재하지 않음을 의미할 수도 있습니다. 서버들은 인증받지 않은 클라이언트로부터 리소스를 숨기기 위하여 이 응답을 403 대신에 전송할 수도 있습니다. 이 응답 코드는 웹에서 반복적으로 발생하기 때문에 가장 유명할지도 모릅니다.

HTTP 상태코드 정보

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

 

모든 API는 Request와 Response가 있으며 요청이 들어오고 응답을 할때 알맞은 상태코드를 내려주게 되면 

클라이언트는 코드에 따라서 처리가 달라질 수 있다.

 

지정되지 않은 메소드나, URL로 접근하게 되면 자동으로 플라스크가 처리해서 404, 405 코드를 보여주게 된다

 

서버와 클라이언트 통신을 할때, html에서 바로 통신하기 보다는 js에 요청해서 통신하기 때문에 from data는 잘 사용하지 않는다. 

 

json은 자바스크립트에서 정의된, 자바스크립트에서 주고받기위해 정의된 타입 , 사용방법은 파이썬 딕셔너리와 동일

json을 사용하는 이유 : 

예전에는 html을 사용해서 서버요청을 많이 보냈었는데, (form data 사용) 요즘에는 html - js - sever 절차를 거쳐서 서버요청을 보내게 된다. 

client : 우리의 서버와 postman(정보를 요청)

sever : flask

API : 서버와 클라이언트가 요청하고 응답하면서 통신하는 것 

데이터를 주고받으면서 데이터를 담는 곳이 필요한데, 데이터 (url, method, user data)

postman과 같이 데이터를 body에 담았으며, 이 body data type을 json이라고 한다.


중복 회원이름 방지하기

코드 수정
sign up 에서 이미 등록된 이름의 정보를 입력하면 status 400 코드가 나타난다.

비밀번호 변경시 동일한 비밀번호가 아닌지 확인하기

상태 코드를 추가함으로써 서버에서 좀 더 안전하게 오류를 처리할 수 있게됨