2013-03-12 1 views
2

api.example.com의 API 백엔드와 example.com의 프론트 엔드 단일 페이지 앱을 모두 소유하고 있습니다. API는 기본적으로 데이터베이스 백엔드의 래퍼입니다.단일 페이지 앱 및 API 백엔드로 인증하는 방법은 무엇입니까?

이제 API를 사용하여 단일 페이지 앱 (= 클라이언트 앱)의 사용자를 인증하려고합니다. 이를 위해 클라이언트 (= 단일 페이지 응용 프로그램)는 user_id와 함께 client_id를 API에 보내고 API는 AccessToken을 제공합니다.

그러나 내 단일 페이지 응용 프로그램에서 액세스 토큰을 저장할 위치/방법을 잘 모르겠습니다. 간단한 참조, 또는 로그인 한 사용자가 API 응용 프로그램에 액세스하도록하는 좋은 개념을 찾고 있습니다.

  1. 클라이언트는
  2. 클라이언트 응용 프로그램이를 얻으려면 API에 요청을 만들고, 암호 (이 이메일 또는 사용자 이름 수) 로그인에 대한 입력을 표시

    친구가 저에게이 흐름 제안

  3. 서버가 앱의 토큰을 생성하고 다시 전송합니다.
  4. 클라이언트 앱이 로그인, 비밀번호 및 요청 서명과 함께 토큰을 전송합니다 (예 : POST/api/v1/auth/new). API (예 : POST/api/v1/mobile_authenticate),
  5. API가 자격 증명의 유효성을 검사하고 확인 함
  6. 모든 것이 정상이면 앱은 사용자를 대신하여 토큰을 사용합니다.

의견이 있으십니까? 이것이 어떻게 단순화되거나 개선 될 수 있습니까?

답변

4

서버 API에서 권한 확인을 위해 API 키를 사용하고 있습니다. API 키의 작동 방식은 다음과 같습니다.

  1. 클라이언트 응용 프로그램에는 로그인 용 입력 (전자 메일 또는 사용자 이름)과 암호가 표시됩니다.
  2. 클라이언트 앱이 API에 api 키 (예 : POST/api/v1/users/validate)를 요청하도록 요청합니다.
  3. 클라이언트 응용 프로그램은 api 키를 사용하여 API에 액세스합니다. http 요청 인 경우 api 키는 http 헤더 또는 쿼리 문자열에 포함될 수 있습니다.

희망이 있습니다.

+0

감사합니다. 깨끗하고 단순 해 보입니다. 나는 그것을 시도 할 것이다. – poseid

관련 문제