2016-06-06 4 views
0

Я использую sails.js, и я могу использовать API для изменения данных в mongodb, например, создать нового пользователя, изменить пользователей и т. Д. Как запретить доступ к API для неавторизованных пользователей?Как запретить доступ к API для неавторизованных пользователей?

+0

Вы пробовали паспорт? http://passportjs.org/ –

ответ

0

Вы можете попробовать мои example.

И изменить то, что вы хотите, авторизоваться в config/policies.js. Пример:

'MyController': { 
    '*': 'isAuthenticated' 
}, 
1

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

  • политика: Эти функции, которые выполняются, когда маршрут, например,/api/view. Они могут гарантировать, что действительный пользователь сохранен в вашей сессии, прежде чем разрешить доступ к логике контроллера маршрута.

  • Система проверки подлинности: кто-то упомянул паспортные знаки. Лично я бы создал свою собственную пользовательскую модель, пользовательский контроллер и представления, чтобы зарегистрировать, войти, забыть пароль. Зачем? Потому что вам нужно в какой-то момент узнать, как паруса работают с аутентификацией, сеансами, политиками и другими процессами. Короче говоря, создайте модель пользователя для хранения информации о пользователе, возможно, у вас есть метод oncreate, который шифрует пароль до того, как запись пользователя будет сохранена как новая. Создайте пользовательский контроллер, который управляет регистрацией, выходом из системы, регистрацией и забытыми паролями. Создайте маршруты для каждого из этих действий контроллера, окно входа в систему вызовет ваше действие входа в контроллер и найдет модель пользователя, сравнивая данный пароль с сохраненным зашифрованным паролем.

  • Управление сеансом: после входа пользователя в систему или выхода из системы вам необходимо управлять своей «сессией». Проще говоря, если вы не управляете сеансами, пользователь будет постоянно входить в систему, поскольку система их не запомнит. Это довольно легко сделать в парусах, и я рекомендую прочитать: http://sailsjs.org/documentation/concepts/sessions Чтобы это было просто, когда пользователь входит в систему, вы установите переменную сеанса, такую ​​как req.session.User.id = 1, и когда вы хотите, чтобы вы вышли из системы, вы можете аннулировать сеанс, который заставляет их вернуться на страницу входа.

  • Назад к политике: Я упомянул об этом раньше, но в политике вы проверите сеанс, чтобы узнать, разрешено ли им просматривать каждое действие контроллера. Это означает, что вы можете подробно рассказать о том, какие действия они могут использовать и не могут использовать. Примеры политики можно найти здесь: http://sailsjs.org/documentation/concepts/policies В моей политике я просто имею функцию LoggedIn, которая проверяет, что у пользователя есть действительный сеанс, и если он не отправляет их на логин. Эта базовая защита запрещает пользователям просматривать то, что они не должны были входить в систему.

  • Маршруты/действия плана: вам необходимо отключить встроенный проект, который паруса включил по умолчанию. Они великолепны в разработке, когда вы хотите читать/писать/удалять элементы из своей базы данных через интерфейс Api, но в производстве это опасно, и вы захотите, чтобы политики выполняли работу вместе с сеансами. Чтобы отключить чертежи, посмотрите руководство здесь: http://sailsjs.org/documentation/anatomy/my-app/config/blueprints-js Посмотрите, как все они в основном установлены в true? прочитайте комментарии для каждого элемента и решите, нужно ли его переключать на ложь.

Если вам нужна дополнительная помощь по любому аспекту этого вопроса, просто дайте мне знать. Будьте настолько конкретны, насколько сможете, так как это помогает. Я рекомендую взглянуть на «Паруса в действии» на свою электронную книгу, которая также охватывает эту информацию с примером кода!

Смежные вопросы