Задать вопрос

Что должно происходить, когда пользователь заходит на сайт?

Если Вы считаете что у темы выставлен неподходящий тег, то можете убрать его.

Пытаюсь сделать первый сайт и самая большая проблема связана с "непониманием процесса".
Вот допустим на мой сайт на корневой домен зашел зарегистрированный, но не авторизованный пользователь. Какие действия должны происходить на сервере? У меня, вроде бы, стандартная серверная архитектура. У каждого маршрута свой контроллер, который имеет ссылку на модель (которая работает с базой данных) и так же имеет ссылку на представление, то есть он рендерит...

И вот заходят ко мне на сайт в корневой маршрут... Что мне нужно делать?

UPD:
Ну вот зашел я на сайт, сайт должен узнать авторизован ли я сейчас. Как он это узнает?
И получается, что когда я захожу на сайт, срабатывает "какой-то" контроллер, который
создает модель пользователя. Затем когда я перешел в какой-то раздел срабатывает
уже другой контроллер в котором опять всё начинается сначала. То есть опять я должен
как-то узнать авторизован пользователь или нет, затем снова создать модель пользователя..
И так нужно каждый раз или вообще так не нужно?
  • Вопрос задан
  • 1621 просмотр
Подписаться 7 Оценить 4 комментария
Решения вопроса 1
@riente
Ну, если объяснять на пальцах, то примерно алгоритм следующий:
человек заходит, система проверяет его сессию: если в ней сохранены данные пользователя и тот факт, что он авторизован, то окей, показываем ему какую-то инфу; если же нет - то к примеру перекидываем на страницу логина. После ввода данных, если они верные, система сохраняет в сессию скажем id пользователя. Впоследствии, при попадании на любую страницу, где требуется авторизация, система видит, что пользователь авторизован, и по его id из базы получает модель и далее использует по назначению.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
2ord
@2ord
Аутентификация - это проверка соответствия субъекта и того, за кого он пытается себя выдать, с помощью некой уникальной информации (отпечатки пальцев, цвет радужки, голос и тд.), в простейшем случае - с помощью имени входа и пароля.
Авторизация - это проверка и определение полномочий на выполнение некоторых действий (например, чтение файла /var/mail/eltsin) в соответствии с ранее выполненной аутентификацией.


Есть ресурсы, которые доступны только зарегистрированным пользователям. Для использования этих ресурсов пользователь должен предварительно идентифицироваться в системе при помощи формы аутентификации (имя/пароль). В зависимости от нужд программа может проверять, авторизован ли пользователь выполнять те или иные действия (проверка полномочий).

Глава 7. Регистрация
Аутентификация в Rails-приложениях с помощью Devis...
Руководство Ruby On Rails по безопасности

Добавлено
При аутентификации пользователь отправляет POST запрос (использовать HTTPS для безопасности данных!) через форму с комбинацией имя/пароль. Программа на сервере создаёт хеш пароля и сравнивает его с хранящимся в БД для данного пользователя. Если совпадает, то пользователю высылаются куки с хешем сессии, согласно которому сервер будет определять аутентификацирован ли пользователь.

Управление доступом на основе ролей

Аутентификация и авторизация
Ответ написан
amf1k
@amf1k
Проверять авторизованный ли пользователь или нет, и показывать инфу взависимости от этого?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы