Да, да.Аутентификация без аутентификации и авторизации

#authentication #haskell #yesod

Вопрос:

Я пишу веб-приложение для личного использования с Yesod. Я не хочу аутентификации и входа в систему. Каков наилучший способ достичь этого?

  • удалите библиотеку проверки подлинности из приложения
  • используйте скрытого пользователя по умолчанию, который автоматически входит в систему при запуске (Auth.dummy?)
  • или что-то еще….

Ответ №1:

Предполагая, что вы используете последнюю версию сайта с каркасом, вы должны быть в состоянии найти src/Foundation.hs определение isAuthorized . Замените все определение на:

 isAuthorized _ _ = return Authorized
 

или даже полностью удалить его, так как приведенное выше определение используется по умолчанию.

Этого должно быть достаточно, чтобы разрешить доступ ко всем страницам. Затем выполните поиск в своем коде для использования maybeAuth* и requireAuth* функций. Убедитесь, что используемые страницы maybeAuth* работают должным образом, если они вернутся Nothing . Удалите любое использование requireAuth* и любые зависимости от его возвращаемого значения.

После этого вы можете очистить ненужный код, но это совершенно необязательно:

  • В Foundation.hs , ты можешь:
    • удалить Yesod.Auth.Dummy и Yesod.Auth.OpenId импортировать
    • удалите определение из muser <- maybeAuthPair defaultLayout
    • удалите страницы входа/выхода/профиля с панели навигации ( menuItems )
    • удалите authRoute определение в instance Yesod App
    • удалите AuthR и ProfileR из breadcrumb
    • удалите instance YesodAuth App определение isAuthenticated и instance YesodAuthPersist App
  • Войдя NoFoundation.hs , вы можете удалить Yesod.Auth импорт.
  • В Settings.hs , удалите appAuthDummyLogin поле и ссылку на него в instance FromJSON AppSettings
  • В config/routes.yesodroutes разделе удаление /auth и /profile маршруты
  • Удалить src/Handler/Profile.hs и import Handler.Profile удалить Application.hs .
  • Удалите все оставшиеся ссылки на функции или ссылки на маршрут. maybeAuth* ProfileR