Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przeprowadzić uwierzytelnianie w node.js, którego mogę używać z mojej strony internetowej?

Musisz tylko zmodyfikować .authenticate metoda. Ponieważ połączenie z bazą danych jest (lub powinno być) operacją asynchroniczną, musisz dodać promise obiekt (patrz dokumentacja Everyauth ).

Zakładając, że masz ORM z danymi użytkownika odpowiadającymi user obiekt z username i password atrybuty (w moim przykładzie użyję silnika mongoose), tak to może wyglądać:

.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 */
})

Nie testowałem tego, ale zgodnie z dokumentacją powinno działać. Pamiętaj, że błędy powinny być przechowywane w tablicy.

Przy okazji:jeśli używasz tylko metody hasła, to nie ma potrzeby, wiesz, używać armaty przeciwko muchom. :) Napisanie własnego (niekoniecznie doskonałego, ale działającego) mechanizmu uwierzytelniania jest naprawdę proste i jeśli nie wiesz, jak to zrobić, powinieneś się tego nauczyć. Przyniesie to korzyści w przyszłości, ponieważ uwierzytelnianie i ogólnie bezpieczeństwo są bardzo ważne w każdej aplikacji internetowej.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co jest szybsze, SELECT DISTINCT lub GROUP BY w MySQL?

  2. Transakcja wiosenna i wycofanie na wielu stołach

  3. Używanie Visio do generowania MySQL DDL

  4. Java PreparedStatement narzeka na składnię SQL podczas wykonywania()

  5. Docker-compose:mysqld:nie można utworzyć/zapisać do pliku '/var/lib/mysql/is_writable' (Errcode:13 — odmowa uprawnień)