sql >> データベース >  >> RDS >> Mysql

ウェブサイトから使用できるnode.jsで認証を行う方法は?

    .authenticateを変更するだけで済みます 方法。データベースへの接続は非同期操作である(またはそうあるべきである)ため、promiseを追加する必要があります オブジェクト(すべての認証ドキュメント を参照してください 。

    userに対応するユーザーデータを持つORMがあると仮定します usernameのオブジェクト およびpassword 属性(私の例ではマングースエンジンを使用します)、これはどのように見えるかです:

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

    私はそれをテストしませんでしたが、ドキュメントによるとそれは動作するはずです。エラーは配列に保持されることになっていることに注意してください。

    ちなみに、パスワード方式のみを使用している場合は、ハエに対して大砲を使用する必要はありません。 :)独自の(必ずしも完璧ではありませんが、機能する)認証メカニズムを作成するのは本当に簡単です。これを行う方法がわからない場合は、それを学ぶ必要があります。認証とセキュリティは一般的にすべてのウェブアプリで非常に重要であるため、将来的にはメリットがあります。




    1. CONVERT_TZ –クエリでMySQLタイムゾーンを変更する方法

    2. ACLのデータベーススキーマ

    3. SQL一度に複数のテーブルを作成する

    4. DateTimeのドロップタイム