3

SPA 응용 프로그램에서 인증이 아닌 인증을 처리하는 방법에 대한 모범 사례를 알아 내려고 노력했습니다.SPA 또는 클라이언트 측 응용 프로그램에서 인증

api 백엔드가있는 클라이언트 측 MVC (angular, vuejs 등)가 있다고 가정하면 앱 인증을 사용하여 관리하는 방법은 무엇입니까?

예를 들어 사용자와 관리자는 모두 액세스 할 수 있지만 다른 사용자보다 액세스 권한이 더 많습니다 (보기의 기능). 둘 다 클라이언트 측에서 동일한 UI를 사용하는 경우 액세스에 따라 적절한보기를 보호하고 렌더링하는 방법은 무엇입니까? 역할/클레임의 목록을 가져올 수있는 옵션이 있으며 클라이언트 측에서 렌더링 할 대상을 결정할 수 있지만 JS를 기반으로하기 때문에 쉽게 회피 할 수 있습니다.

클라이언트 측 mvc 앱이 올바른 해결책이 아니며 SSR 앱이 이에 더 적합하다고 나에게 들립니다. 그렇다면 모바일 케이스는 어떨까요? 실제 네이티브 앱을 개발할 필요없이 모바일에서 동일한 문제를 어떻게 해결할 수 있습니까?

+1

또 다른 질문은 클라이언트 측 응용 프로그램을 만드는 경우 승인 규칙을 추적하는 가장 좋은 방법은 무엇입니까? 한꺼번에 가져 오거나 로컬로 저장하거나 API 호출을 만들어 각 규칙을 확인하십시오. 보안 및 효율성 포인트에서 모범 사례? – mghz

답변

0

이것은 오랫동안 내 마음 속에 있었던 아주 좋은 질문입니다. 그리고 나는 이것이 왜 누구에 의해 답변되지 않았는지 모르겠다. 나는이에 대한 몇 가지 기사와 튜토리얼을 읽고 그들 모두에 그들은 당신이 언급 한 같은 일을 제안 :

"는 자신의 역할/주장의 목록과 그 기반으로 클라이언트 측에서 렌더링 무엇 을 결정을 받고 "

그리고 당신도 언급 한 바와 같이, 그것은 피할 수 있지만 권한은 또한 서버 측에 수행됩니다, 때문에 나는 생각한다, 다음에 상관없이 사용자가 (프런트 엔드 JS과을 조작하는 없습니다 방법 예를 들어 브라우저의 개발 도구를 사용하여), 그/그녀 can not pa 인가 수호 자입니다. 예를 들어 은 (자신의 의견 이외의) 모든 댓글에 대한 삭제 버튼을 추가 할 수 있지만 다른 사용자의 댓글에있는 삭제 버튼을 클릭하면 삭제 버튼을 추가 할 수 있습니다. 서버는 서버 측 권한으로 인해 삭제 작업을 승인하지 않습니다. 그래서 당신이 언급 한 접근법이 합법적 인 것 같습니다.