REST API를 사용하여 기본 모바일 앱 인증


16

곧 모든 주요 모바일 플랫폼 (iOS, Android, Windows)의 모바일 애플리케이션을 대상으로하는 새 프로젝트를 시작하고 있습니다. 클라이언트-서버 아키텍처가 될 것입니다.

응용 프로그램은 정보 제공 및 거래입니다. 거래 부분의 경우 거래를하기 전에 계정이 있고 로그인해야합니다. 저는 모바일 개발을 처음 사용하기 때문에 이러한 플랫폼에서 인증 부분이 어떻게 수행되는지 모르겠습니다. 클라이언트는 REST API를 통해 서버와 통신합니다. 물론 HTTPS를 사용합니다.

사용자가 앱을 열 때 또는 트랜잭션을 수행 할 때만 로그인 할 것인지 아직 결정하지 않았습니다.

다음과 같은 질문이 있습니다.

1) Facebook 응용 프로그램과 마찬가지로 응용 프로그램을 처음 열 때만 자격 증명을 입력하십시오. 그 후에는 앱을 열 때마다 자동으로 로그인됩니다. 어떻게 이것을 달성합니까? 장치에서 자격 증명을 암호화 및 저장하고 앱을 시작할 때마다 전송하면됩니다.

2) REST API에 대한 각 (트랜잭션) 요청에 대해 사용자를 인증하거나 토큰 기반 접근 방식을 사용해야합니까?

다른 인증 방법을 자유롭게 제안하십시오.

감사!

답변:


14

RESTful API의 로그인 메소드에 사용자 이름 / 암호를 전달하면 액세스 토큰이 리턴됩니다. 해당 액세스 토큰은 시스템의 고유 한 문자열입니다.

액세스 토큰 인 장치 저장소 (지속적) RESTful 요청을 서버로 보낼 때마다 해당 액세스 토큰을 HTTP 요청의 헤더에 넣습니다. 서버는 액세스 토큰으로 사용자를 찾고 성공하면 요청을 이행합니다.

사용자 이름 / 암호 장치에 저장 해서는 안됩니다 .


타사 (해커 등)가 액세스 토큰을 보유 할 수 있습니까?
Supercell

물론 가능합니다. 특히 HTTPS를 사용하지 않는 경우. 대부분의 온라인 이메일 클라이언트는 때때로 다시 로그인하도록 요청합니다. 토큰의 만료 시간은 예를 들어 2 주로 설정되어 있습니다. 따라서 2 주에 한 번 다시 로그인해야합니다.
c-smile

액세스 토큰 생성 방법 및 액세스 토큰이 서버에 저장됩니다.
Ghyath Serhal

@ c-smile Facebook은 다시 로그인을 요청하지 않았습니다. 따라서 암호와 액세스 토큰의 차이점을 실제로 알지 못합니다.
Mickael Marrache

나는 이것이 매우 늦다는 것을 안다. 그러나 페이스 북 및 기타 제공자는 로그인시 새로 고침 토큰, 액세스 토큰 및 만료 시간 (액세스 토큰의 경우)을 발행합니다. 액세스 토큰의 수명이 짧고 새로 고침 토큰을 사용하여 새 액세스 토큰을 생성 할 수 있습니다. 다음에 로그인하면 새로운 새로 고침 토큰이
만들어져
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.