API 및 해당 API를 사용하는 별도의 프런트 엔드 앱을 만들고 있습니다. 필자의 경우 API API에는 Laravel Passport을, 프론트 엔드 앱에는 VueJS를 사용하고 있습니다. 계정을 만들 수있는 사용자에 대한 위해API/SPA에 대한 사용자 등록
, 전달하는 client_secret
(https://laravel.com/docs/5.3/passport#password-grant-tokens)을 필요로하는 API에 대한 경로 (/oauth/token
)에 대한 사용자해야 POST
. 내가 볼
유일한 옵션은 다음과 같습니다
- 은
client_secret
내 프론트 엔드 응용 프로그램에서 헤더로 전송 가졌어요. 그러나이 토큰을 열어 두는 것이 현명하지는 않습니다. client_secret
을 전혀 필요로하지 마십시오. 이것은 옵션 1보다 훨씬 좋아 보이지 않습니다.- 내 프런트 엔드 앱에
client_secret
을 안전하게 저장할 수있는 동적 페이지를 만든 다음 API로 보냅니다. 이것은 분명히 가장 안전하지만 완전히 정적 인 프론트 엔드 (SPA)의 목적을 부분적으로 무효화하는 것 같습니다.
이러한 유형의 접근 방식에 가장 좋은 방법은 무엇입니까? API 및 SPA를 통해이 문제가 어떻게 다루어 지는지에 대해 조사했지만 올바른 방향으로 나를 가리키고있는 것을 발견하지 못했습니다.
등록을 위해 CSRF 또는 기타 토큰 기반 보호가 중요하지 않다고 생각하기 시작했습니다. 사용자 등록은 공개 될 가능성이 있기 때문에 서버에서 유효성을 검사 한 클라이언트 측의 모든 보호는 그다지 효과적이지 않습니다. – tptcat