def admin():
if request.remote_addr != '127.0.0.1':
return 'Only localhost'
if request.headers.get('User-Agent') != 'Admin Browser':
return 'Only Admin Browser'
if request.headers.get('DreamhackUser') != 'admin':
return 'Only Admin'
일단 문제를 풀긴했습니다.. 어찌저찌 시행착오 끝에.. 근데 계속 삽질했던 이유 중 하나가
if request.headers.get('User-Agent') != 'Admin Browser':
return 'Only Admin Browser'
이 부분입니다.
request.headers.get을 보고 문제에 접근할때 request.headers니까 header를 post로 전송해줘야하나? 이런 생각이 들었습니다.
Only localhost를 피하기위해 python requests 라이브러리로 http 헤더에
host : 127.0.0.1 이런식으로 만들어서 games1.dream~~~/admin 여기다 보내줬는데 계속해서 Only localhost만 나왔습니다..
혹시 request.headers.get 이부분이 header를 post로 전송해라 이런 의미랑은 아에 다른 코드인가요?
멘탈이 너무 나가서 답변해주시면 정말 감사드리겠습니다..
request.headers
는 현재 들어온 요청의 헤더 부분을 참조하는 것 입니다. 이때 request.headers
의 타입은 werkzeug.datastructures.EnvironHeaders
이고, get() 메서드를 이용해서 특정 헤더의 값을 가져오고 있는 것 입니다!
즉, request.headers.get('User-Agent')
로 예를 들면 "현재 헤더에서 User-Agent라는 헤더의 값을 가져와라" 라는 코드입니다!