2009-08-03 6 views
1

Я пытаюсь создать веб-приложение в Sinatra, и мне было интересно, было ли хорошее решение для регистрации пользователей с проверкой подлинности электронной почты, а также для проверки подлинности - возможно, как промежуточное ПО стойки? Было бы неплохо иметь поддержку OpenID.Регистрация пользователя с проверкой подлинности электронной почты и аутентификация в Ruby

Я полагаю, что могу катиться самостоятельно, но я не хотел изобретать велосипед. Если я должен это сделать, может ли кто-нибудь указать мне на библиотеки, которые я, возможно, захочу использовать, может быть, даже пример кода? Я также обеспокоен тем, что могу забыть внедрить что-то важное с регистрацией/аутентификацией, поскольку я никогда раньше этого не делал.

Если мне нужно домашнее решение, я нашел bcrypt-ruby для шифрования пароля и Sinatra::Mailer или Pony для электронной почты. Для входа в систему с поддержкой OpenID есть hancock и hancock-client, хотя я не совсем понятен в использовании и мне не нужен single sign-on support. Может быть, я просто должен использовать a ruby openid library? Нужно ли мне что-нибудь еще?

Это довольно запутанный вопрос, но я надеюсь, что кто-то более опытный может указать мне в правильном направлении.

ответ

2

Возможно, вас заинтересует Authlogic. Вам нужно будет выполнить проверку электронной почты самостоятельно, но она предоставит вам хорошую основу для поддержки этого.

Authlogic может быть использован в любой рамках рубинового вы хотите: Rails, Merb, Синатра, Mack, свой собственный рамки, что угодно. Он не привязан до Rails. Он делает это , абстрагируясь от этих контроллеров с помощью адаптера контроллера . Благодаря Rack, , существует определенный стандарт для структуры контроллера , и вот что такое Последовательный переход от Authlogic. Итак, если ваш контроллер следует за стойкой , вам не нужно делать ничего.

+0

Спасибо, что хорошо выглядит. Тем не менее, я не могу понять, как использовать его с Sinatra, так как примеры для рельсов ... – ehsanul

+2

Я написал адаптер, чтобы сделать аутлогическую работу с синатрой. Он доступен как часть этого шаблона: http://github.com/ehsanul/Sinatra-Authlogic-Template/tree/master – ehsanul

+0

Очень классный @eshanul. –