В качестве альтернативы вы могли бы рассмотреть happstack-authenticate,
Даркс получить http://src.seereason.com/happstack-authenticate/
happstack-authenticate строится поверх аутентификации и pwstore для обеспечения:
- стандартная аутентификация по имени пользователя / паролю
- openid аутентификация
- Facebook Connect
Код разработан таким образом, чтобы его можно было использовать с несколькими различными шаблонными решениями. Хотя на данный момент есть только шаблоны HSP.
Он еще не взломан, но будет. Я ожидаю, что это станет де-факто решением для аутентификации happstack.
Вы можете увидеть это действие здесь:
http://www.seereason.com/
Исходный код содержит демонстрационный каталог с автономным примером.
Код работает - хотя есть некоторые функции, которые еще нужно добавить. Например, если вы будете перенаправлены на страницу входа в систему, в конечном итоге вы должны быть перенаправлены обратно на исходную страницу, к которой вы пытались перейти после входа в систему.
Самый большой недостаток на данный момент - это документация. Это будет решено.
Вы заметите, что happstack-authenticate использует веб-маршруты для безопасных типов URL-адресов и acid-state для хранения аутентификационной информации. Однако эти варианты дизайна не должны просачиваться в остальную часть вашего приложения.
Какое шаблонное решение вы используете? Мне было бы интересно добавить поддержку дополнительных систем.
- Джереми
p.s. Если вы посмотрите на код, он может показаться немного сложнее, чем ожидалось. Это потому, что он предназначен для:
несколько методов аутентификации для одного профиля
Например, вы можете связать несколько открытых аккаунтов с одним профилем. Возможно, потому что вы боитесь, что можете потерять доступ к своей основной учетной записи openid. Или, может быть, вы хотите, чтобы все в вашей команде входили в систему, используя общий аккаунт (Например, на таком сайте, как твиттер, вы можете захотеть, чтобы несколько человек могли публиковать твиты через корпоративный аккаунт).
несколько профилей для одного метода аутентификации
На таком сайте, как твиттер, у вас может быть несколько аккаунтов. Например, у меня есть аккаунты в твиттере, я, моя фотография, моя музыка, happstack, seereason и многое другое. Вместо отдельной аутентификации для каждой учетной записи было бы неплохо иметь одну аутентификацию, а затем выбрать «профиль», которым я хочу быть.
сайтам, использующим happstack-authenticate, не обязательно поддерживать эти опции.