Триггеры в петле

Я создал небольшое приложение в loopback, в котором я сохранял адрес электронной почты пользователя и пароль, пароль в виде простого текста.

Теперь у нас есть запрос функции, чтобы сохранить пароль в каком-то зашифрованном формате, скажем, Base64.

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

Но возникают проблемы, мы создали пользователей из разных мест кода, поэтому вместо обновления кода в каждом месте можно добавить некоторую форму trigger в поле password, поэтому всякий раз, когда это поле обновляется, будет вызываться функция, которая будет принимать пароль text и обновите его в зашифрованном формате.

поэтому нам не нужно беспокоиться о написании кода везде.

Дайте мне знать, если вопрос не ясен.

Я ищу решение Loopback.

Спасибо


person BeingExpert    schedule 10.11.2016    source источник
comment
Внимание! Base64 — это НЕ шифрование!, просто кодирование. Пожалуйста, не храните такой пароль, потому что безопасность ваших пользователей будет скомпрометирована (на самом деле вы храните пароль в виде открытого текста). Вместо этого используйте bcrypt(). LoopBack уже хранит пароли в зашифрованном виде, но если вам нужно хранить другие пароли, пожалуйста, изучите, как это сделать безопасно, прежде чем внедрять его.   -  person Acapulco    schedule 27.11.2016


Ответы (4)


Вы когда-нибудь слышали о хуках loopback Operation?

https://loopback.io/doc/en/lb2/Operation-hooks.html

используйте хук before save или after save на модели, чтобы делать то, что вы хотите.

у них есть пример, можешь попробовать

person Frz Khan    schedule 17.11.2016

Если вы используете модель пользователя по умолчанию, пароль по умолчанию хранится в зашифрованном виде.

Если вам нужен настраиваемый триггер, вы можете сделать это с помощью удаленных или операционных хуков. Крюк операции: https://loopback.io/doc/en/lb2/Operation-hooks.html Удаленный хук: https://loopback.io/doc/en/lb2/Remote-hooks.html

person Gani Padela    schedule 24.11.2016

Пароль хранится в зашифрованном виде. Вы можете использовать хук операции.

person J.Doe    schedule 13.03.2017

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

Однако, если вы настаиваете на триггере, вам необходимо использовать драйверы, поддерживаемые БД. В случае оракула есть коннектор nodejs-oracle и loopback-oracle. Если вы используете mongo, что, как я предполагаю, вы делаете, вы можете использовать mongodb oplog, который предоставит вам метод жизненного цикла, с помощью которого вы можете подключить нужный код. Из соображений производительности я бы не рекомендовал такие триггерные решения. Из вашего вопроса неясно, что означают разные разные местоположения кода. Я предполагаю, что это разные части вашего приложения, которые могут не быть петлевыми. В этом случае лучше всего поместить запись в очередь и обработать ее через процессор. Так что вы можете решить проблему множественного происхождения.

person mrsachindixit    schedule 26.09.2017