Показ дописів із міткою warden. Показати всі дописи
Показ дописів із міткою warden. Показати всі дописи

середа, 26 жовтня 2011 р.

Модель User в DataMapper(з BCryptHash) для Warden

В процесі написанні статті Модель User в DataMapper для Warden я натрапив на цікавий тип даних BCryptHash. В DataMapper він стає доступний, якщо включити гем dm-types. BCryptHash зберігається у базі даних як рядок, що представляє сіль, хеш і вартість паролю, використовуючи алгоритм bcrypt. Він пропонує альтернативу більш звичної пари значень хеш і сіль, які зберігаються у базі даних.

Модель User в DataMapper для Warden

В минулій статті Інтеграції Warden з Sinatra і DataMapper ми написали тестовий додаток, який використовує аутентифікацію по імені і паролю. Уважний читач не міг не помітити, що паролі у базі даних зберігаються у відкритому вигляді. Це все робилося, щоб не завантажувати статтю зайвими сутностями.
Але очевидно, з точки зору безпеки паролі у базі даних повинні зберігатися в зашифрованому вигляді. Цю тему ми і розглянемо у цій статті.

За основу взята 11 глава "Task F: Administration" з книги Agile Web Development with Rails (3rd edition).

Тут основний упор буде на роботу з DataMapper. Крім того у другій частині статті ми закладемо фундамент адміністративного інтерфейсу для керування користувачами.

понеділок, 24 жовтня 2011 р.

Інтеграції Warden з Sinatra і DataMapper

В Інтернеті можна знайти багато статей на тему аутентифікації з допомогою Warden у Sinatra. Я не буду оригінальним, і напишу ще одну, щоб самому розібратися з особливостями цього інструменту. Ціллю цієї статті не є показати повністю готовий механізм аутентифікації. А лише продемонструвати основні можливості інтеграції Warden з Sinatra і Datamapper.

Warden - це Rack middleware, що забезпечує механізм аутентифікації для веб-додатків на Ruby.
Warden вимагає деяких налаштувань для Sinatra. Цього можна уникнути, використовуючи плагін Sinatra::Warden. Але ми ж не шукаємо простих шляхів.