Администратор аккаунта: где, когда и как? - PullRequest
5 голосов
/ 15 мая 2010

Где, когда и как создать учетную запись администратора / пользователя для частного сайта?

Итак, я спрашиваю, каков предпочтительный метод для создания этой первой учетной записи администратора / пользователя. В моем случае это для частного веб-приложения. Я говорю об учетной записи / пользователе, который будет владельцем приложения и при необходимости будет создавать / продвигать других администраторов. Я думаю, вы можете этот парень, пользователь root?

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

Мастер установки:
Вы часто видите это в блоге или на форумах. При установке приложения оно попросит вас создать пользователя с правами администратора. Частное веб-приложение, скорее всего, не будет иметь этого.

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

Файлы конфигурации:
Файл конфигурации, в котором хранятся учетные данные для учетной записи администратора.

Вставить вручную в базу данных:
Вручную вставьте информацию администратора в базу данных.

Ответы [ 4 ]

3 голосов
/ 16 мая 2010

Когда:

На этапе начальной загрузки. Кто-то предложил семена.рб. Лично я предпочитаю использовать гем bootstrapper (с некоторыми дополнениями, которые позволяют мне анализировать CSV-файлы).

Это действие позволяет вам создать грабли, которые могут быть вызваны так:

rake db:bootstrap

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

Как:

Во всех случаях я использую Declarative_authorization для управления правами пользователей.

Ваш администратор должен вернуть роль с именем «admin» (или любое другое имя по вашему выбору) в списке ролей, прикрепленных к нему. У меня обычно есть одна роль на пользователя, главным образом потому, что я могу использовать наследование ролей (например, администраторы также являются редакторами по умолчанию). Это означает, что в моей базе данных у меня есть одно поле для пользователей, которое называется "role_id". 0 обычно для роли администратора, так как это первая созданная роль.

Где:

Конкретный файл в db / bootstrap / users.rb (или yaml, или csv) указывает данные пользователя с активированной ролью администратора. Порядок rake db:boostrap анализирует этот файл и соответственно создает пользователя.

1 голос
/ 16 мая 2010

Если у вас есть учетные записи на вашем веб-сайте (и я вижу, что они есть), файл конфигурации с учетными данными администратора очень неудобен. Это решение заставляет вас дублировать большую часть логики аутентификации. Лучше держать учетную запись в базе данных.

Я понимаю, что вы готовите заявку для себя, а не доставляете ее своим клиентам. Подготовка мастера установки или установочных файлов кажется пустой тратой времени.

Я бы сделал самое простое - просто необработанную вставку. Плюсы: никакой дополнительной работы, тот же механизм аутентификации, что и для других пользователей. Если вы используете какую-либо миграцию базы данных, вы можете создать миграцию, которая создаст корневую учетную запись с некоторым фиктивным паролем, который вы можете изменить позже.

1 голос
/ 16 мая 2010

Мастер установки: - безусловно, лучший подход. Чистый, надежный и удобный. Должен быть интегрирован с установщиком приложения.

Установочный файл: - хорошо, но только если у вас есть один-единственный скрипт для запуска. Наличие большего количества -> проблем и потенциально уязвимостей (все, кто забыл удалить этот файл после ...)

Файлы конфигурации: Избежать. Вы требуете, чтобы пользователь знал PHP, внутреннюю часть вашего приложения, возможно, конфигурацию на стороне сервера (все, что выше ftp, может быть «трудным»)

Вручную вставить его в базу данных: Чтобы избежать * 2.

Кроме того, два последних решения невозможны, если вы используете хеширование паролей (т. Е. Md5 или sha1 с солью, специфичной для сайта) - что сегодня является довольно обязательным.

1 голос
/ 15 мая 2010

Я вижу, вы пометили рубин на рельсах здесь. В RoR вы, вероятно, использовали бы файл seed.rb в /your_app/db.

Если вы используете asp.net, я могу предположить, что вы используете MSSQL или, возможно, Oracle. Наличие хранимого процесса, который запускается как скрипт установки, может сделать эту работу.

Я видел php-приложения, использующие файл install.php, который при запуске один раз устанавливает необходимые данные в базу данных, а затем говорит установщику удалить файл перед запуском приложения.

Таким образом, есть три способа справиться с этим.

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