
Alexander
25.08.2016
05:11:31
так не пользую разные версии

Andrey ?
25.08.2016
05:12:31
Просто в репо лежит что-то далеко не последнее

Константин
25.08.2016
05:16:03
asdf
Рекомендую

Google

Константин
25.08.2016
05:16:23
Очень удобно
Глянь в гитхабе asdf, там плагины для эрланга и эликсира.

Aldar
25.08.2016
05:27:47
В книге programing phoenix как раз описывается как свой плаг для аутентификации написать

Dmitry
25.08.2016
05:37:02
Для меня всегда было интересно, как отличать аутентификацию от авторизации?

Andrey ?
25.08.2016
05:37:48

Константин
25.08.2016
05:38:49
авторизация от слова автор
т.е. владелец, имею доступ

Dmitry
25.08.2016
05:39:36
Ну в рельсах например devise и cancan

Константин
25.08.2016
05:39:55
cancan - авторизация
если я не туплю)))
cancan - Authorization Gem for Ruby on Rails.

Dmitry
25.08.2016
05:41:54
А зачем авторизация без аутентификации?
Или как делать аутентификацию без авторизации?

Google

Константин
25.08.2016
05:42:18
легко
Так туплю)) отвлекают
Если нет ролей - будет только аутентификация

Aldar
25.08.2016
05:45:41
Без аутентификации не может быть авторизации

Константин
25.08.2016
05:45:47
авторизации без аутентификации не может быть
да)))

Dmitry
25.08.2016
06:18:16
Наоборот)
Те ты аутентифицируещься и в этом нет смысла без разграничения доступа

Константин
25.08.2016
06:24:56
Так то да
Личный кабинет там и все такое
@noma4i Что-то я совсем не понял как работает openmaize.
Сгенерировал openmaize.gen.phoenixauth
openmaize.gen.ectodb
Сделал модель пользователя
В роутере
pipeline :manager do
plug Openmaize.Authenticate
end
По коду я понял, что оно только ищет пользователя
и делает assign(conn, :current_user, user)
Но авторизацию так и не нашел)))

Google

Константин
25.08.2016
07:39:27
Аа я тупень.. Openmaize is an authentication library for Plug-based applications in Elixir.
Сам себе злобный буратино.. авторизацию надо другой либой делать
Сильно много библиотек перечитал. В каких-то библиотеках есть функционал получения current_user и т.д.
Как правильно делать halt с редиректом на другую страницу?
Есть кто знающий?)) Хочу сделать перекидывание на страницу аутентификации с записью текущей страницы, чтобы после аутентификации автоматом перекинуть на неё
conn
|> Plug.Conn.assign(:back_url, "/url")
|> Phoenix.Controller.put_flash(:info, "Требуется авторизация")
|> Phoenix.Controller.redirect(conn, to: "/login")
|> Plug.Conn.halt(conn)
вот такой код.. как вычеслить "/url" ??

Eugene
25.08.2016
08:48:54
@yaBloom вот тут должно быть поле referer:
conn.req_headers

Константин
25.08.2016
08:58:58
ок, а оно не собьется, если человек введет неправильные данные при логине?
Хотя.. там же просто рендер идет, никаких редиректов

Eugene
25.08.2016
08:59:41
не должно сбиться
а вообще нет, подумал еще раз, наверное нельзя так

Eugene
25.08.2016
09:01:16
1. он приходит на урлХ незалогиненым (тут еще нормальный реферер есть),
2. ты его редиректишь на логин - тут оригинальный реферер стерся
но судя по тестам все ок! таки не сотреться
http://stackoverflow.com/questions/2158283/will-a-302-redirect-maintain-the-referer-string

Alexander
25.08.2016
09:12:49

Константин
25.08.2016
09:13:18
def auth_required(%Plug.Conn{assigns: %{current_user: current_user}} = conn)
when current_user == nil do
conn
|> Plug.Conn.put_session(:back_url, "Вот тут что должно быть??")
|> Phoenix.Controller.put_flash(:info, "Требуется авторизация")
|> Phoenix.Controller.redirect(conn, to: "/login")
|> Plug.Conn.halt(conn)
end

Alexander
25.08.2016
09:13:46
у тебя многословно

Константин
25.08.2016
09:14:03
5 сек, сейчас сформулирую
put_session(:back_url, "Вот тут что должно быть??")

Google

Alexander
25.08.2016
09:14:22
conn
|> put_session(:back_url, "Вот тут что должно быть??")
|> put_flash(:info, "Требуется авторизация")
|> redirect(conn, to: "/login")
|> halt

Константин
25.08.2016
09:14:23
Как мне плучить текущий url?
Да я просто пока так пишу, потом все импорты сделаю))

Alexander
25.08.2016
09:15:22
https://hexdocs.pm/plug/Plug.Conn.html#get_session/2
доставать, также как и класть
conn |> get_session(:key)
я так неавторизованных отлавливаю, посылаю на логин и после логина проверяю, был ли урл записан и по нему перекидываю
юзер к примеру ткнулся куда-то, там нужен логин, он залогинился и туда редиректнулся
красотень

Admin
ERROR: S client not available

Alexander
25.08.2016
09:17:52
conn - это структура плага
conn |> методы_plug
как-то так
вообще радует что не я один боль испытываю

Константин
25.08.2016
09:19:20
Еще какую

Alexander
25.08.2016
09:19:23
т.к у меня коллега, который на эликсире хуету всякую пишет типа либы faker
не понимает что на фениксе каждые пол метра - ебаный ад
вроде решиш проблему, думаешь - вот и сейчас все пойдет ок. Хрен.

Константин
25.08.2016
09:23:17

Google

Alexander
25.08.2016
09:23:38
клади в сессию и вынимай потом
пхпшные return_to в урле - это прошлый век

Константин
25.08.2016
09:25:18
Ну так я и делаю это))) кладу в сессию, а как мне достать текущий урл, чтобы положить его в сессию?)))
Вот в чем вопрос)))

Aldar
25.08.2016
09:26:35
в Plug.Conn развен нет?

Alexander
25.08.2016
09:27:00
conn |> request_path

Константин
25.08.2016
09:27:09
Я открыл его исходники, но не могу понять какой именно параметр брать
request_path - the requested path, example: /trailing/and//double//slashes/
Он же не включает в себя все, что после ? и т.д.

Alexander
25.08.2016
09:28:17
он все кроме домена

Константин
25.08.2016
09:28:31
аа.. примеров мало в документации))
спасибо)

Alexander
25.08.2016
09:28:39
)
мне всего лишь час понадобился
рад что сэкономил тебе

Константин
25.08.2016
09:29:06
Пол дня убито на аутентификацию))
которая пока еще и не работает))

Alexander
25.08.2016
09:29:19
хаха, я пару дней возился, т.к все пробовал
в пятницу сел, в понедельник встал
сайт “за выходные выкачу”, в понедельник даже не родился

Константин
25.08.2016
09:29:52
Вот самого немного напрягает этот момент))
и загуглить не получается

Alexander
25.08.2016
09:30:23
меня бесит что у меня в гугле первые 15 ссылок уже сиреневые