삽질/개발,엔지니어링

텔레그램으로 웹사이트 로그인

maengis 2022. 3. 23. 13:26

페이스북 로그인을 몇 년간 잘 사용하고 있었는데, 몇 달 전에 갑자기 정책을 위반 했다면서 사용을 막았다. 무슨 정책을 위반한 건지 내용도 없고, 문의를 해도 몇 주간 답변이 없다가 문의 자체를 닫아 버렸다.

 

답변 하나 없는데 해결 되었다고 알아서 닫아버리길래, 국내 회사에서 제공하는 걸 써야겠다 싶어서 네이버 로그인을 쓰기로 했으나

 

네이버도 개인 사이트라는 이유로 거부. 아무래도 트래픽 발생하는 거니까 돈 되는 거 아니면 안 받겠다는 거 같아서 안내대로 테스트 하듯 그냥 쓰려고 했는데, 이거 등록하는 것도 일이라서 혹시나 API를 관대하게 잘 열어 주는 텔레그램에 웹사이트 로그인이 있나 찾아봤다.

 

https://telegram.org/blog/login

 

Telegram Login for Websites

The Login Widget offers a frictionless way to authorize users on your website and ask for permission to contact them on Telegram.

telegram.org

역시나 있었다.

 

https://core.telegram.org/widgets/login

 

Telegram Login Widget

The Telegram login widget is a simple way to authorize users on your website. Check out this post for a general overview…

core.telegram.org

 

봇파더에게 setdomain 명령어를 사용하면, 현재 내가 사용하는 봇이 있으면 해당 봇을 알려주는데, 이 때 어떤 봇을 사용할지를 다시 보내면 된다. 나는 기존에 쓰던 봇(봇파더가 알려준)을 그냥 쓰기로 했고, 그 뒤에 도메인을 입력하여 해당 봇으로 도메인이 적용된다.

 

설정을 마치고 소스 코드를 삽입하면 로그인이 활성화 된다.

 

콜백을 받을지, 리다이렉트 시킬지 선택할 수 있는데, 기존에 페이스북은 XHR로 처리하게 했고, 네이버는 리다이렉트를 시켜서 했기에 기존에 페이스북 로그인용으로 쓰던 부분을 텔레그램용으로 사용하게 수정해야겠다.

 

텔레그램님 API 너무 관대하셔서 감사.

 

* 적용 후 문제가 좀 있었는데, 내 경우에는 username, photo_url 값을 받을 수 있었는데 다른 사용자들은 콜백시 안 넘어오는 경우가 있었다. 결론적으로 id, auth_date, first_name, hash는 고정적으로 넘어오는 거 같아서 검증 과정시 해당 값들만 사용하게 했다.

반응형