본문 바로가기
IT기술(코딩)

php에서 자바, 안드로이드 등 앱 웹 request헤더파일 정보 받는법 앱 자동로그인 토큰 저장 및 서버 요청

by 크리에이트매이커 2023. 5. 29.
반응형

안녕하세요 여러분.

크리에이트 메이커 입니다.

 

오늘도 외주작을 하다 발견한 좋을 정보를 알려드리겠습니다.

 

가끔 앱같은것을 제작하다보면, 헤더에 쿠키나 세션처럼 중요정보를 저장하는 경우가 있습니다.

예를들어 자동로그인 같은것을 위해서요..

 

보통 쿠키나, 세션을 생각하시는데, 이는 웹에서는 유용하게 작용하나, 앱이나 어떠한 프로그램을

php나 nodejs 와 연동해서 사용할때, 이 둘에서 데이터를 왔다갔다 하기 힘듭니다.

 

 그 이유는 예를 들어 앱에서 php의 echo정보를 불러와 사용할때, 브라우저를 열었다 닫어버기 때문에,

쿠키나 세션 저장값이 유지가 잘 안됩니다.

 

이럴때, 보통 앱이나 프로그램 요청헤더 자체에 토큰같은것을 저장해 놓는데요,  당연 헤더에 토큰저장하는 방법은 아주 간단합니다. 그냥 코딩해서 저장하면되요.

 

자 그럼, 이 중요정보를 어떻게 php같은곳에 전달해서 잘 사용할까요?

php를 예를 들어보겠습니다. 다른 것이야 원리는 같으니까요.

 

저는 안드로이드 스튜디오와php를 연동하여 프로그램을 개발중에 있었는데요. 자동로그인을 해야해서 토큰을 저장하고 디바이스마다 다른 값들을 계속 저장하여 타인의 정보노출을 막으면서 서버에 저장소에는 저장이 안되게 하고 싶었습니다. 그래서 앱 요청 헤더에 중요 값을을 저장시켰죠.

 

그 결과 앱에서는

[{"X-Forwarded-Server":"sdf.sdfs.com","X-Forwarded-Host":"library.ioneis.com","X-Forwarded-For":"211.187.173.33","User-Agent":"o..,"X-Auth-Token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyU2VxIjoxMjUsInVzZXJJZCI6ImNyZWF0ZW1ha2VyaW5jQGdtYWlsLmNvbSIsInVzZXJOaWNrbmFtZS...]

저기서 중요한건 "X-Auth-Token" 이부분이어서 이걸 추가해 줬습니다.

이런식의 헤더를 매번 데이터 요청할때마다 주고 받습니다.

자, 그럼 이 헤더를 php에서 어떻게 받느냐??

당연히 $_POST로 받을 수 없습니다. post방식이 아니니까요!

 

php에서는 $_SERVER["HTTP_X_AUTH_TOKEN"] 이라는 명령으로 받습니다.

보시면 다 X_ 어쩌구 써있는데, 키값을 저렇게 한 이유도, 사실 php, node등 웹으로 데이터를 주고받는 api형식의 서버는

HTTP통신에 의존을 많이 하기 때문에, 저 형식으로 앱에 헤어파일에 넣었습니다. 그에따라,

php에서 해당 형식의 헤더요청을 처리할 수 있는 $_SERVER["HTTP_X_AUTH_TOKEN"] 이런 명령이 있구요.

 

저 명령을 쓰고 echo를 하면 "X-Auth-Token" 의 데이터가 출력이 됩니다 ㅎㅎ..

 

세션, 쿠키 없이 개개인 고유의 토크을 사용하여 자동로그인 기능을 할 수 있게 된거죠 !!

 

2일만에 알아낸 방법인만큰 php 와 안드로이드 앱 통신을 하며 자동로그인을 앱에 안전한 방법으로 구현하고 싶으신 분들은 참고해보세요~~

 

그럼 다음엔 저 유용한 정보로 글 올릴게요

 

반응형