2016-08-06 4 views
1

세션 토큰이 유효하지 않은 사용자에게 액세스 할 수있는 몇 가지 기능을 제공합니다. 내가 할 수있는 유일한 방법은 Parse가 요청을 받고 요청에서 sessionToken을 제거하기 전에 bodyParser를 사용하여 요청을 차단하는 것입니다. Cloud 함수 권한 대 validationHandler

지금 모든 기능에 대한 권한을 관리하는 더 나은 일을하려고 - 내 질문은 다음과 같습니다

  1. 나는 sessionToken가 포함되어있는 경우는 다른 방법으로 유효해야한다는 요구 사항은 휴식을 취할 수 있습니까? 대체 될 수있는 다른 validationHandler를 사용하여 세션 토큰 유효성 검사가 완료 되었습니까?

  2. 클라우드 기능에 대한 액세스를 제어하려면 ACL 역할과 같은 것이 있습니까? 클라우드 함수의 "validationHandler"는 param 만 허용합니까? 또는 사용자 개체를 검사 할 수 있습니까?

답변

0
  1. 예. 구문 분석 서버에서는 유효하지 않은 세션으로 CRUD 작업을 실행하려고하면 세션이 유효하지 않거나 만료 된 http 403 오류가 발생하므로 세션이 유효한지 확인할 수 있습니다. 구문 분석 서버 응용 프로그램에서 sessionLength 속성을 변경하여 세션의 길이를 제어 할 수 있습니다. 기본값은 1 년입니다.

  2. 클라우드 기능에 대한 제어 권한은 없지만 request.user이 정의되지 않았는지 확인하여 로그인 한 사용자가이 기능을 트리거하는지 확인할 수 있습니다. 클라우드 함수는 키 - 값 쌍의 매개 변수 만 가져올 수 있으며 해당 매개 변수는 개체 파싱이 될 수 없습니다. ParseObject를 보내려는 경우 parse 개체의 objectID을 전송 한 다음 클라우드 코드에서 쿼리하여 전체 개체를 가져올 수 있습니다. request.user (사용자가 클라우드 코드를 실행 한 경우에만)의 사용자 컨텍스트에 항상 액세스 할 수 있습니다. 그래도 클라우드 코드를 "보호"하려면 호출 사용자가 역할 DB를 쿼리하여 역할을 가지고 있는지 확인하고 사용자가 거기에 포함되어 있는지 확인하십시오.

+0

감사합니다. 어쩌면 내가 더 명확해야합니다. 1) 실제로 클라우드 코드 기능에 잘못된 토큰 액세스를 허용 할 수있는 방법이 있는지 묻고있었습니다. 내가 묻는 이유는 일부 기능이 인증되지 않은 사용자가 액세스 할 수 있기 때문입니다. 그러나 사용자가 요청에 부실 세션이 있으면 거부됩니다. 이것에 대한 해결책은 서버가 구문 분석 서버에 수신하기 전에 요청을 가로채는 것이며 이러한 공개 요청에 전달 된 세션 토큰을 삭제하는 것입니다. 그런 다음에 만 구문 분석이 요청을 처리하도록 할 수 있습니다. 그러나 나는 더 좋은 방법이 있기를 바라고 있었다. –

+0

2) 시행해야 할 몇 가지 액세스 규칙이 있습니다. ACL에 대해서만 권한을 부여하지 않습니다. 따라서 다른 인증 메커니즘이 필요합니다. 그러나 validationHandler는 request.user가 아니라 params 만받습니다. 필요한 것은 각 요청의 매개 변수를 사용자의 권한과 일치시키는 일반 코드를 실행하는 것입니다. 그래서 validationHandler와 비슷한 것이 필요합니다. 오직 사용자 객체에 대해서만 접근 할 수 있습니다. 다시 말하지만 권한 체크 핸들러 함수로 각 함수 핸들러를 래핑하면됩니다.하지만 권한 부여 체크 기능을 등록 할 수 있다면 더 좋을 것입니다. –

+0

클라이언트에서 사용자 오브젝트 ID를 전송 한 다음 클라우드 코드로 읽으시겠습니까? –