Od dłuższego czasu programuję z Sinatrą i Padrino. Jednak nadal nie jestem w stanie znaleźć właściwego rozwiązania do uwierzytelniania i autoryzacji dla Padrino. Pozwól mi wyjaśnić moje oczekiwania i to, co już wypróbowałem.Rozwiązanie uwierzytelniania i autoryzacji dla Padrino
Z Sinatra, z powodzeniem używam klejnotu sinatra-authentication wraz z klejnotem role_model. Generalnie używam Mongoid ORM do rozmowy z MongoDB. Te dwa klejnoty razem pozwalają mi zadbać o uwierzytelnianie, ochronę tras, sprawdzanie ról zalogowanego użytkownika w celu zastosowania kontroli dostępu.
uwierzytelnianie sinatra nie działa z Padrino - jest to bardzo specyficzne dla Sinatry. Próbowałem go wiele razy. Próbowałem już zarówno Omniauth, jak i opiekuna z odpowiednimi modułami Padrino, ale z tego czy innego powodu nie jestem w stanie zmusić ich do pracy po prostu jako cudownego klejnotu autentyzującego się przez sinatrę.
Zanim spróbuję wdrożyć własne rozwiązanie (lub przeprowadzić uwierzytelnianie Sinatra dla Padrino) - czy ktoś może zaproponować inne rozwiązania uwierzytelniające i autoryzacyjne? W tej chwili nie potrzebuję niczego nadzwyczajnego - proste uwierzytelnianie oparte na bazie danych działa doskonale.
Użycie padrino-admin zmusza do pracy z modelem konta wygenerowanym przez administratora (lub obejściem to); które mogą nie być optymalne dla PO. Co ważniejsze, istnieją otwarte problemy bezpieczeństwa (https://github.com/padrino/padrino-framework/issues/384) każdy, kto wdraża padrino-admin w produkcji powinien być świadomy. – pithyless
Ten problem bezpieczeństwa został zamknięty 2 lata temu, fyi przyszli widzowie – Jonah