Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để xác thực trong node.js mà tôi có thể sử dụng từ trang web của mình?

Bạn chỉ cần sửa đổi .authenticate phương pháp. Vì kết nối với cơ sở dữ liệu là (hoặc phải) là một hoạt động không đồng bộ, nên bạn cần thêm promise đối tượng (xem tài liệu everyauth ).

Giả sử bạn có một số ORM với dữ liệu người dùng tương ứng với user đối tượng có usernamepassword (trong ví dụ của tôi, tôi sẽ sử dụng công cụ mongoose), đây là cách nó có thể trông:

.authenticate( function (login, password) {
    var promise = this.Promise(); /* setup promise object */

    /* asynchrnously connect to DB and retrieve the data for authentication */
    db.find({ username:login }, function(err, user) {
        if (err)
            return promise.fulfill([err]);
        if ((!user) || (user.password != password))
            return promise.fulfill(['Incorrect username or password!']);
        promise.fulfill(user);
    });

    return promise; /* return promise object */
})

Tôi đã không kiểm tra nó, nhưng theo tài liệu thì nó sẽ hoạt động. Hãy nhớ rằng lỗi được giữ trong mảng.

Nhân tiện:nếu bạn chỉ sử dụng phương pháp mật khẩu, thì bạn không cần phải sử dụng pháo chống ruồi. :) Việc viết cơ chế xác thực của riêng bạn (không nhất thiết phải hoàn hảo, nhưng hoạt động) thực sự đơn giản và nếu bạn không biết cách làm điều này, bạn nên học nó. Nó sẽ có lợi trong tương lai, vì xác thực và bảo mật nói chung là rất quan trọng trong mọi ứng dụng web.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đồng bộ khóa chính giữa hai bảng được lưu trữ trong hai cơ sở dữ liệu khác nhau

  2. MySQL cập nhật Cột Varchar với NULL

  3. Giao dịch MySQL nguyên tử trong Anorm

  4. Tự động tạo truy vấn chọn mysql

  5. Thứ tự các trường của chỉ mục nhiều cột trong MySQL Matter