strongloop - 如何在环回4中加密密码?

标签 strongloop loopback

import { Member } from '../models';
import { MemberRepository} from '../repositories';
import {inject, Context} from '@loopback/context';

export class MemberController {
constructor(
 @repository(MemberRepository) private memberRepository: MemberRepository,
 @Inject('utilities.PasswordHasher') private passwordHasher: PasswordHasher,
    ) { }
}

收到此错误。

src/controllers/member.controller.ts:27:65 - error TS2304: Cannot find name 'PasswordHasher'.

27 @Inject('utilities.PasswordHasher') private passwordHasher: PasswordHasher,

src/controllers/member.controller.ts:27:65 - error TS4063: Parameter 'passwordHasher' of constructor from exported class has or is using private name 'PasswordHasher'.

27 @Inject('utilities.PasswordHasher') private passwordHasher: PasswordHasher,

我可以使用哪个模块来实现此目的?

最佳答案

我这样做:

import {Entity, model, property} from '@loopback/repository';

const crypto = require('crypto');

@model()
export class User extends Entity{    

  [...]

  @property({
    type: 'string',
    required: false
  })
  private hashedPassword: string;

  @property({
    type: 'string'
  })
  private salt: string;

  set password(password: string){
    if(!this.salt || !this.salt.length){
      this.salt = crypto.randomBytes(32).toString('hex');
    }
    this.hashedPassword = this.encryptPassword(password);
  }

  private encryptPassword(password: string) {
    return crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex');
  };

  public checkPassword(password: string) {
    return this.encryptPassword(password) === this.hashedPassword;
  };
}

关于strongloop - 如何在环回4中加密密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256665/

相关文章:

javascript - 如何正确使用 MongoDB 进行 Strongloop 支架式用户模型存储?

node.js - 如何使用环回映射我的一组 url 和中间件

javascript - Loopback - 创建一个方法以使其可以在两个不同的模型中访问

mysql - Strongloop:用[and]和[or]条件一起过滤数据

node.js - 服务器端 React : Babel doesn't transform JSX on the server neither on the fly not manually. 为什么?

javascript - Angular-环回-SDK : prototype$updateAttributes is not a function

c - 环回模式下的 ip_rcv(在 ip_input.c 中用于 ipv4)行为

mongodb - 无法将环回模型连接到 mongo db 集合

node.js - Loopback - 使用远程方法下载 pdf

javascript - Loopback:我们如何修改内置模型函数的返回数据