확장 가능하게 만드는 방법
먼저이 모든 API가 로그인에 동일한 메커니즘을 사용한다는 것을 알아야합니다. 모두 인증에 OAuth를 사용합니다. 이를 위해서는 일반 OAuth 라이브러리로 시작하여 활용해야합니다. 인증을 위해 자체 라이브러리를 사용하지 마십시오. 다른 공급자는 사용할 수 없습니다. OAuth2가 중단되면 공급자를 더 쉽게 추가 할 수 있습니다.
트위터는 여전히 OAuth2 악 대차를 뛰어 넘지 않았기 때문에 불행히도 두 가지가 필요합니다.
OAuth는 인증 당사자에 대한 인터페이스를 작성해야합니다. 토큰은 서버에서 서버로 교환됩니다. 모든 통신을 처리 할 수있는 하나의 진입 점을 만듭니다.
토큰은 계정과 별도의 테이블에 저장해야합니다. 이는 여러 개의 토큰과 여러 개의 연결된 프로필 일 수 있기 때문입니다. 일부 서비스는 두 개의 토큰을 제공하며 그 중 하나는 새로 고침 토큰입니다.
이제 필요한 다른 기능을 캡슐화하는 인터페이스를 설계하십시오. 개인적으로 별도의 REST 서비스를 설정하려고합니다. 이런 식으로 인증을 다른 곳으로 쉽게 확장 할 수 있습니다.
일부 서비스는 JSON을 사용하여 통신하고, 다른 서비스는 XML 등을 사용합니다. 초기 사용자의 경우 모두 통합해야합니다. 이것은 매우 고통스러운 과정이지만 여기에서 몇 가지 일반적인 근거를 도출 할 수 있습니다.
여기서 또 다른 문제는 모든 서비스가 동일한 기능을 제공하지는 않는다는 것입니다. 이는 서비스가 지정한대로 전체 API를 제공 할 수 없음을 의미 할 수 있습니다. 여기에는 응용 프로그램을 정상적으로 다운 그레이드 할 수있는 전략이 필요합니다.
이를 통해 새로운 타사 제공 업체를 쉽게 추가 할 수 있습니다.
토큰 문제
토큰은 시간이 제한되어 있으므로 토큰을 계속 사용할 수 있는지 확인하는 두 개의 cron 작업이 필요합니다. 그렇지 않으면 토큰을 삭제해야합니다. 이 메커니즘으로 토큰을 새로 고칠 수도 있습니다.
때때로 사용자가 토큰을 취소합니다. 준비하십시오.
정보 저장소
이 디자인을 가지고 있다면 필요한 데이터에 대해 생각해야합니다. 이것은 방금 생성 한 인터페이스의 일부입니다. 이를 위해 일부 테이블을 디자인하고 실제로 데이터를 검색 할 수 있는지 확인하십시오. 일부 서비스에서는 많은 데이터를 얻을 수 없습니다. 필요한 데이터가 많을수록 개인 정보 보호 메시지가 더 많이 필요하다는 점도 고려해야합니다. 따라서 필요에 따라 겸손하지 않으면 사용자가 사용하지 않습니다.
추가 확인을 위해 프로파일을 사용자와 별도의 링크 된 테이블에 저장할 수 있습니다. 이것은 누군가에게 더 많은 정보를 제공 할 것입니다.
또한 추가주의가 필요한 일부 데이터에 대해서는 현지 법률을 확인하십시오.
마지막으로
자신의 서비스에 계정을 만들지 않는 경우 잘못을 저 지르지 마십시오. 사용자가 페이스 북에서 금지 된 경우, 효과적으로 서비스에 로그인 할 수 없습니다. 이것은 당신이 만들고 싶지 않은 상황입니다. 이것은 종종 간과됩니다.