2011-09-07 1 views
5

나는 Sinatra와 Padrino로 꽤 오랫동안 프로그래밍 해왔다. 그러나 여전히 Padrino에 대한 올바른 인증 및 권한 부여 솔루션을 찾을 수 없습니다. 내가 기대했던 것과 내가 이미 시도한 것을 설명하겠습니다.Padrino에 대한 인증 및 권한 부여 솔루션

Sinatra를 사용하면 sinatra-authentication 보석과 함께 role_model 보석을 사용할 수 있습니다. 나는 일반적으로 MongoDB와 대화하기 위해 Mongoid ORM을 사용한다. 이 두 개의 보석을 함께 사용하면 자동 치료, 경로 보호, 액세스 제어 적용을 위해 로그인 한 사용자의 역할 확인 등을 처리 할 수 ​​있습니다.

sinatra 인증은 Padrino에서 작동하지 않습니다. 이는 Sinatra에만 적용됩니다. 나는 그것을 여러 번 시도했다. 나는 이미 해당하는 Padrino 모듈로 옴니아 우스와 소장님을 모두 시험해 보았습니다. 그러나 한 가지 이유 또는 다른 이유로 나는 그들에게 훌륭한 sinatra-autentication gem만큼 간단하게 일하게 할 수 없습니다.

내 자신의 솔루션을 구현하려고 시도하기 전에 (또는 Padrino에 sinatra 인증을 이식하는 것) - 다른 인증 및 권한 부여 솔루션을 제안 할 수 있습니까? 지금은 아무 것도 필요하지 않습니다. 간단한 데이터베이스 기반 인증만으로도 완벽하게 작동합니다.

답변

0

내장 된 인증 솔루션을 사용하는 것이 좋습니다. padrino-admin을 살펴보고, 필요한 모든 응용 프로그램에서 관리자없이 Padrino :: Authentication을 사용할 수 있습니다.

역할/경로를 기반으로 매우 간단합니다.

http://www.padrinorb.com/api/Padrino/Admin/AccessControl/Base.html#allowed%3F-instance_method

+3

padrino-admin을 사용하면 admin에 의해 생성 된 계정 모델로 작업해야합니다 그것); 이는 OP에 적합하지 않을 수 있습니다. 더 중요한 것은 공개 보안 문제 (https://github.com/padrino/padrino-framework/issues/384)가 있습니다. 생산에 padrino-admin을 배치하는 사람은 누구나 알고 있어야합니다. – pithyless

+2

해당 보안 문제는 2 년 전에 마감되었습니다. fyi 향후 시청자 – Jonah

1

대부가 has been discussed위한 독립 인증 솔루션,하지만 아직 해결되지 않았습니다. 그 동안 인기있는 제안 중 하나는 padrino-warden입니다.

면책 조항 : 나는 OP와 비슷한 상황에 처해 있으며, 아직 개인 생산 관리자를 운영하는 데 경험이 없습니다.

+0

그래,이 점에 대해 밝히기 위해 v1.0에 대한 일정이 잡혔습니다. 우리는 자신의 솔루션을 (권장 사항/제안과 함께) 연결하고 권한 부여와 인증 사이에 별도의 관심사를두기위한 API를 구현할 수도 있습니다. @pithyless가 강조하는 이슈에 계속 주목하십시오. –

1

Ryan Bates는이를 수행하는 방법에 대한 훌륭한 Rails 스크린 캐스트를 보유하고 있습니다 (무료는 아닙니다 : http://railscasts.com/episodes/250-authentication-from-scratch-revised).

Sinatra 또는 Padrino에 대해 Rails Magic을 수정하고 똑같은 작업을해서는 안됩니다.

잊어 버린 비밀번호 등의 많은 기능이 필요한 경우에는 적합하지 않을 수 있습니다. 그러나 다시 한번 말하지만 너무 적응하기가 어렵지는 않습니다.

3

나는이 질문이 2 살이라는 것을 안다. 그러나 나는 최근에 아직도 padrino-warden이 나쁘게 문서화 된 동일한 말썽이 있고 나는 많은 문제를 직면했다. 그래서 나는 내 발견을 workaround.org에 문서화했다. 불행한 사람들을 도울 수 있기를 바랍니다.

나는 padrino-admin에게 배울 좋은 발판을 고려합니다. 그러나 사용자 모델은 다소 융통성이 있습니다. 그리고 권한 개념은 이상하게도 Padrino의 저자가 좋아하지 않는 일을하고 있습니다. 컨피규레이션을 컨트롤러로 이동하는 대신 중앙에 위치시키는 것입니다. (padrino-admin은 페이지 매김이 빠지거나 외래 키에 대한 지원이 누락 된 것과 같은 추가 문제가 있습니다. 따라서 장고가 제공하는 것과 원격으로 비교할 수 없습니다.)