В Інтернеті можна знайти багато статей на тему аутентифікації з допомогою Warden у Sinatra. Я не буду оригінальним, і напишу ще одну, щоб самому розібратися з особливостями цього інструменту. Ціллю цієї статті не є показати повністю готовий механізм аутентифікації. А лише продемонструвати основні можливості інтеграції Warden з Sinatra і Datamapper.
Warden - це Rack middleware, що забезпечує механізм аутентифікації для веб-додатків на Ruby.
Warden вимагає деяких налаштувань для Sinatra. Цього можна уникнути, використовуючи плагін Sinatra::Warden. Але ми ж не шукаємо простих шляхів.
Показ дописів із міткою rack. Показати всі дописи
Показ дописів із міткою rack. Показати всі дописи
понеділок, 24 жовтня 2011 р.
вівторок, 26 липня 2011 р.
Rack::Webconsole - інтерактивна консоль для веб-додатків
Rack::Webconsole надає Rack "прошарок"("middleware"), який включає інтерактивну консоль у користувацький інтерфейс вашого веб-додатку. Він працює із Rails 3, Padrino, Sinatra, і є чудовим способом заглянути під капот вашого додатку без доступу до сервера.
Встановити Rack::Webconsole можна як і будь-який інший gem:
Rack-прошарки - це компоненти, які «сидять» між сервером і вашим додатком, і відстежують і/або маніпулюють HTTP запитами/відповідями для надання різної функціональності.
У Sinatra дуже просто використовувати такі "прошарки" за допомогою методу use:
Rack::Webconsole потребує JQuery. Для цього ви повинні додати наступний рядок до вашому додатку:
І це працює! Запустіть сервер, зайдіть на будь-яку сторінку і натисніть клавішу `.
Більше інформації на офіційній сторінці rack-webconsole.
Встановити Rack::Webconsole можна як і будь-який інший gem:
$ gem install rack-webconsole
Rack-прошарки - це компоненти, які «сидять» між сервером і вашим додатком, і відстежують і/або маніпулюють HTTP запитами/відповідями для надання різної функціональності.
У Sinatra дуже просто використовувати такі "прошарки" за допомогою методу use:
require 'sinatra'
require 'rack/webconsole'
use Rack::Webconsole
Rack::Webconsole потребує JQuery. Для цього ви повинні додати наступний рядок до вашому додатку:
Rack::Webconsole.inject_jquery = true
І це працює! Запустіть сервер, зайдіть на будь-яку сторінку і натисніть клавішу `.
Більше інформації на офіційній сторінці rack-webconsole.
четвер, 26 травня 2011 р.
Огляд Padrino і OmniAuth
У цій статті буде показано, як з’єднати модуль автентифікації Access Control, описаний тут, з OmniAuth middleware для Rack.
Система аутентифікації і контролю доступу Padrino забезпечує простий спосіб створювати свої системи аутентифікації. У поєднанні з OmniAuth ви можете легко використовувати її для аутентифікації за допомогою різних методів. Читайте нижче для більш докладної інформації про те, як інтегрувати їх.
У цій статті ми розглянемо дві теми:
На відміну від оригінальної статті, де у якості ORM використовується ActiveRecord, тут ми будемо використовувати DataMapper, про який я писав тут. Можливо вам необхідно познайомитись з фреймворком Padrino, про який я писав тут і тут. І про OmniAuth тут.
Перш ніж ми почнемо, важливо відзначити, що наша вбудована аутентифікація, що базується на ролях, може взаємодіяти з іншими системами. Потрібно лише внести зміни у файли session.rb і account.rb для того щоб додати свій власний код.
Отже, давайте почнемо зі створення проекту використовуючи DataMapper:
Система аутентифікації і контролю доступу Padrino забезпечує простий спосіб створювати свої системи аутентифікації. У поєднанні з OmniAuth ви можете легко використовувати її для аутентифікації за допомогою різних методів. Читайте нижче для більш докладної інформації про те, як інтегрувати їх.
У цій статті ми розглянемо дві теми:
- Інтеграцію Padrino Admin Authentication в усі додатки вашого проекту
- Створення власних стратегій аутентифікації
На відміну від оригінальної статті, де у якості ORM використовується ActiveRecord, тут ми будемо використовувати DataMapper, про який я писав тут. Можливо вам необхідно познайомитись з фреймворком Padrino, про який я писав тут і тут. І про OmniAuth тут.
Перш ніж ми почнемо, важливо відзначити, що наша вбудована аутентифікація, що базується на ролях, може взаємодіяти з іншими системами. Потрібно лише внести зміни у файли session.rb і account.rb для того щоб додати свій власний код.
Отже, давайте почнемо зі створення проекту використовуючи DataMapper:
пʼятниця, 20 травня 2011 р.
OmniAuth: Зовнішня, проста автентифікація для Rack на прикладі Sinatra і ВКонтакте
В останні один-два роки веб-додатки зазнали радикальних змін. Час, коли кожен сайт представляв собою бункер, який чекає приходу нових користувачів поступово проходить. Я роздратовано зітхаю кожен раз, коли мені доводиться заповнювати чергову реєстраційну форму замість того, щоб скористатися "Connect with Facebook", "Sing in with Twitter" або "Log in with OpenID". Зараз веб-додатки стають все більш відкритими світу. Один з кращих способів збільшення популярності та життєздатності нового сервісу є його доповнення існуючими базами користувачів таких додатків, як: Twitter, Facebook, ВКонтакте, тощо.
Нещодавно я писав про авторизацію додатків ВКонтакте використовуючи відкритий протокол OAuth 2.0. У цій статті мова піде про OmniAuth.
OmniAuth - система аутентифікації заснована на Rack, яка значно спрощує зовнішню аутентифікацію в тому сенсі, що вам немає потреби розбиратися в API провайдерів, а також не вимагає ніякої інформації про те, що буде відбуватися з надіcланими після аутентифікації даними.
Що це означає для вас? Це означає, що ви можете легко реалізувати аутентифікацію в вашому додатку через Twitter, Facebook, LinkedIn, Google, GitHub, ВКонтакте, Mailru і т.д. І потім мати повний контроль над нею.
Нещодавно я писав про авторизацію додатків ВКонтакте використовуючи відкритий протокол OAuth 2.0. У цій статті мова піде про OmniAuth.
OmniAuth - система аутентифікації заснована на Rack, яка значно спрощує зовнішню аутентифікацію в тому сенсі, що вам немає потреби розбиратися в API провайдерів, а також не вимагає ніякої інформації про те, що буде відбуватися з надіcланими після аутентифікації даними.
Що це означає для вас? Це означає, що ви можете легко реалізувати аутентифікацію в вашому додатку через Twitter, Facebook, LinkedIn, Google, GitHub, ВКонтакте, Mailru і т.д. І потім мати повний контроль над нею.
пʼятниця, 3 грудня 2010 р.
Вирішення проблем з Rack і Sinatra на Ruby 1.9.2
Оновив на веб-сервері Ruby до версії 1.9.2 і додаток на Sinatra валиться при спробі запуску.
Справа в тому, що $LOAD_PATH (він же $:) у Ruby 1.9.2 не містить шлях до поточного каталогу і require не бачить файл /.
Рішень є кілька:
Справа в тому, що $LOAD_PATH (він же $:) у Ruby 1.9.2 не містить шлях до поточного каталогу і require не бачить файл /.
Рішень є кілька:
- замінити require на require_relative
- прописати повний шлях до файлу
- додати поточний каталог "./" до $LOAD_PATH
require './hello'
run Sinatra::Application
І використання require_relative в hello.rb:require 'sinatra'
require 'haml'
require_relative 'lib/api'
Підписатися на:
Дописи (Atom)

