2016-11-10 3 views
0

loopback에 간단한 전자 메일 형태의 사용자 전자 메일과 암호를 저장하는 작은 응용 프로그램을 만들었습니다.루프백의 트리거

이제 우리는 암호화 된 형식으로 암호를 저장하는 기능 요청이 있습니다 (예 : Base64).

그래서 내가 원하는 것은 새로운 사용자가 암호를 암호화 된 형식으로 생성 할 때마다 우리가 할 수있는 것이 쉽다는 것입니다.

그러나 문제는 우리가 여러 가지 다른 코드 위치에서 사용자를 생성, 그래서 대신 코드를 업데이트하는 모든 장소가 password 필드에 trigger의 형태를 추가 할 수 있습니다 온다, 그래서이 필드가 업데이트 될 때마다, 함수를 호출 할 것이다, 암호 텍스트를 사용하고 암호화 된 형식으로 업데이트합니다.

그래서 우리는 코드를 작성하는 것에 대해 걱정할 필요가 없습니다.

질문이 명확하지 않은 경우 알려주십시오.

루프백 솔루션을 찾고 있습니다.

감사합니다.

+1

** 경고! Base64는 암호화가 아닙니다! **, 인코딩 만 가능합니다. 사용자의 보안이 손상 될 수 있으므로 암호를 저장하지 마십시오. 실제로 암호는 일반 텍스트로 저장됩니다. 대신 bcrypt()를 사용하십시오.LoopBack은 이미 암호를 암호화 된 형식으로 저장하지만, 다른 암호를 저장해야하는 경우이를 구현하기 전에 안전하게 수행하는 방법에 대해 조사하십시오. – Acapulco

답변

0

루프백에 대해 들었어요?

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

당신이 원하는 무엇도 할 수있는 모델에 before save 훅 또는 after save 후크를 사용합니다. 당신이 기본 사용자 모델을 사용하는 경우

그들은 예를 가지고, 당신은 암호는 암호화 된 형태로 저장 디폴트로,

0

비밀번호는 암호화 된 형태로 저장된다. 조작 후크를 사용할 수 있습니다.

0

정신 및 그 다음 편지에 질문에 답하십시오. 트리거는 데이터베이스 레벨 기능으로 loop back은 서버 프레임 워크입니다. 루프백 내에서 가장 좋은 기회는 초기 답변과 같은 Operation hook을 사용하는 것입니다.

그러나 트리거를 주장하면 DB가 지원하는 드라이버를 사용해야합니다. oracle의 경우 nodejs-oracle과 loopback-oracle connector가 있습니다. mongo를 사용 중이라면 mongodb oplog을 사용하면 원하는 코드를 연결할 수있는 라이프 사이클 방법을 사용할 수 있습니다. 성능상의 이유로 나는 그런 방아쇠 해결책을 추천하지 않을 것입니다. 다른 코드 위치가 무엇을 의미하는지 명확하지 않습니다. 루프백이 아닌 응용 프로그램의 다른 부분이라고 가정합니다. 어떤 경우에는 대기열에 항목을 넣고 프로세서를 통해 처리하는 것이 가장 좋습니다. 멀티플 기원이라는 문제를 해결할 수 있다고 확신합니다.