Каков предпочтительный способ аутентификации и авторизации пользователей в Clojure? - PullRequest
15 голосов
/ 14 марта 2012

Я работаю над веб-приложением в Clojure в качестве стороннего проекта и пытаюсь выяснить, как выполнять аутентификацию и аутентификацию пользователей.От гугля, который я сделал, я услышал о песочной панели, но после прочтения двух блогов на песочной панели ( Часть 1 , Часть 2 ) я оставил больше вопросов, чем ответов.Я посмотрел на исходный код для 4clojure , и, насколько я могу судить, они катятся самостоятельно, проблема в том, что код не очень хорошо прокомментирован, если вообще.Я думаю, что мне нужно развернуть свою собственную систему и использовать либо sandbar, либо noir.session для передачи информации о пользователях.Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении?Я чувствую, что мне не хватает чего-то простого.

Ответы [ 4 ]

10 голосов
/ 10 августа 2012

Библиотека Chas Emerick Friend теперь доступна.Это все еще относительно новый, но выглядит многообещающе и довольно хорошо задокументировано.

9 голосов
/ 14 марта 2012

Я посмотрел на 4clojure код входа , и я думаю, что довольно ясно, как работает реализация.В основном это традиционная HTTP-аутентификация.Отправьте пользователя / pwd в форме на URL-адрес, проверьте имя пользователя и пароль и обновите сеанс с информацией о пользователе, которая может использоваться для дальнейших запросов, чтобы проверить, является ли этот сеанс действительным зарегистрированным пользователем.

Этокак работает большая часть аутентификации веб-приложения.Теперь это «что делать», это часть ситуации, так как «как это сделать» вы можете реализовать самостоятельно, используя «примитивные» функции, предоставляемые веб-фреймворком, или, возможно, использовать какое-то промежуточное программное обеспечение, которое делает это для вас вместе с предоставлениемнесколько хуков для настройки реализации.

8 голосов
/ 14 марта 2012

Для аутентификации, кроме очевидного «сворачивания своего», я обнаружил, что https://github.com/mattrepl/clj-oauth хорошо работает, если вы хотите использовать OAUTH (например, через Twitter). Как только вы получили пользовательскую информацию, кажется очевидным, что ее нужно сохранить в каком-либо объекте сеанса (через ring-middleware-session или аналогичные абстракции).

Для авторизации хорошо работает способ, описанный в сообщении в блоге, на которое вы ссылаетесь - обертывание определенных маршрутов промежуточным программным обеспечением для авторизации (или любой другой абстракцией, которую предлагает предпочитаемый вами веб-стек - например, pre-route в Noir ).

5 голосов
/ 05 февраля 2015

Есть также альтернатива Другу, называемая Приятель .

В чем разница с Другом?

Авторизация / аутентификация друзейУдобства находятся на более низком уровне и менее самоуверенны, что позволяет им создавать другие абстракции высокого уровня.Технически, абстракция друга может быть построена поверх приятеля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...