2013-01-14 2 views
3

저는 phpbb 포럼이 있으며 모바일 친화적 인 앱에 사용될 레일 애플리케이션을 개발 중입니다. 나는 phpbb와 레일 사이에서 SSO를 수행 할 방법이 필요하다.PHPBB 인증 + 레일

github에서 phpbb-auth라는 루비 보석을 찾았지만 3 년 넘게 업데이트되지 않았습니다.

필자의 초기 생각은 phpass (필자는 phpbb가 사용하는 것으로 믿는다)를 모방 한 다음 Devise/Warden으로 인증 할 때 phpbb_users 테이블을 참조하는 레일을 가지고있다.

그러나이 작업은 위압적이었고 관리하기위한 또 다른 lib가되었습니다.

내 생각에 Warden이 phpbb_session을 확인하기위한 플러그인을 작성하고 거기에 있다면 계속합니다. 그렇지 않으면 phpbb 로그인 페이지로 리디렉션하십시오.

이전에이 작업을 한 사람이 있었습니까? 그렇다면 사용했던 방법은 무엇입니까?

답변

2

지금 당장은 같은 일을하고 있습니다 (이미 실제로 성공했습니다).

기본적으로 설치/배포에 따라 몇 가지 옵션이 있습니다. 다음을 고려하십시오 :

  • 레일 응용 프로그램과 phpbb를 같은 도메인이나 다른 도메인에 배포 할 계획입니까?
  • 두 사이트 모두 서로 db에 액세스하도록하십시오.
  • 어떤 인증 시스템을 사용 하시겠습니까? 따라서 레일스 (예 : devise, authlogic 또는 기타)가 사용자를 인증하고 처리하거나 (즉, phpbb 사용자 테이블에 로그인 및 비밀번호 저장) phpbb db auth를 처리 할 수 ​​있습니다.

지금까지, 내 ​​앱의 phpBB DB를 인증 + 단일 도메인을 통해 인증 구현했습니다 (phpBB를 : 쿠키 공유 example.com : forum.example.com을 내 레일 응용 프로그램에 있습니다). 이 경우 언급 한 보석의 코드를 사용할 수 있습니다 (phpbb-auth). 그다지 어렵지 않습니다. 코드는 여전히 잘 작동하고 있습니다 (아마도 약간의 조정이있을 것입니다).

하지만

나는이 방법을 좋아하지 않는다 : 나는 주요 애플 리케이션으로 내 사이트를 고려하고 내 사용자를 처리하는 포럼 싶지 않아 ...

을 그래서, 시작 이해 phpbb 3에서 phpbb에 대한 외부 인증 용 플러그인 (API docs)을 작성할 수 있습니다.

그물에있는 Python과 Django에는 몇 가지 예가 있습니다. 동일한 도메인 + db 액세스에 대해 this one처럼 보입니다. 그리고 JavaScript를 사용하여 원격으로 작업하기 때문에 this one처럼 보입니다. 그것들은 파이썬에 있지만, 파이썬이 너무 많지는 않습니다. 몇 가지 예제 만 있습니다. 그래서 쉽게 레일에 적용 할 수 있습니다.

This question은 동일한 내용을 더 일반적으로 설명합니다.

+0

필자는 phpass-ruby gem을 사용하고 비밀번호를 수동으로 확인했습니다. 나는 그것을 위해 보석을 만들어야한다. 지금 레일 애플 리케이션은 단지 phpbb_users 테이블에 액세스하고 인증을하고 별도의 세션 저장소를 만든다. – gorelative

+0

내 문제는 Heroku를 사용하고 여러 원격 MySQL 데이터베이스를 추가하려고합니다. 레일 애플 리케이션은 적어도 두 DB에 연결하여 정보를 읽습니다. – gorelative

+0

불행히도 나는 경험이 없습니다. 지금까지 Heroku를 사용하고 있습니다.당신이 끝내는 방법은 내가 끝내는 방법입니다 :) 나는이 주제에 대해 흥미로운 것을 발견 할 수 있다면 업데이트를 게시 할 것입니다. –