2016-12-05 6 views
1

私はログインサービスにAuth0を使用していますが、アカウントがAuth0によって登録されるたびにMySQLのデータベースにユーザーを追加する必要があります。Auth0のカスタムデータベースを使用してMySQLデータベースにユーザーを追加するにはどうすればよいですか?

これらのスクリプトテンプレートは提供していますが、私は初心者であり、デバッグと理解を助ける必要があります。私の具体的な質問は、コメントとして詳述されている:

function create(user, callback) { 

    var connection = mysql({ 
    host: 'localhost', //what should this be? 
    user: 'KNOWN/Understood', 
    password: 'KNOWN/Understood', 
    database: 'KNOWN/Understood' 
    }); 

    connection.connect(); 

    var query = "INSERT INTO users SET ?"; //what does this do? 

    bcrypt.hash(user.password, 10, function (err, hash) { //what does this do? 
    if (err) { return callback(err); } 
    var insert = { 
     password: hash, 
     email: user.email 
    }; 
    connection.query(query, insert, function (err, results) { 
     if (err) return callback(err); 
     if (results.length === 0) return callback(); 
     callback(null); 
    }); 
    }); 
} 

は、私は、このスクリプトのために変更したり、理解したり、それを動作させるためで呼び出す必要がある何か他のものはありますか?

私はしばしばエラーmissing username for Database connection with requires_username enabledを得て、これが何を意味するのかよく分かりません。

答えて

0

あなたは既にthis tutorial on custom databasesに行ったと仮定していますので、具体的な質問にお答えします。

host: 'localhost'//これは何ですか。

このオブジェクトのこのプロパティと他のプロパティは、カスタムMySQLデータベースに接続する方法を定義します。 Auth0サーバ内からデータベースにアクセスする必要があるため、これはインターネットからアクセス可能なホスト名にする必要があります。

"INSERT INTO users SET ?";//これはどうしますか?

これは、後で置換するためのプレースホルダーとして?を使用するSQL挿入コマンドを定義します。

このクエリは、後に使用されている場所を表示された場合、あなたはそれが上記のクエリのようなものに展開されることになります追加insertオブジェクトパラメータで呼び出されます気づいます:

INSERT INTO users SET email = '[email protected]', password = 'asdf34ASws' 

bcrypt.hash(user.password, 10, function (err, hash)//これは何をするのですか?

これは、データベースにプレーンテキストで保存されないように、ユーザーが入力したパスワードをハッシュします。


あなたは、私はデフォルトのテンプレートは、電子メールのみが使用されることを前提と信じているとして、カスタムスクリプトでこの問題に対処する必要がある電子メールに加えてusernameを必要とすることを選択した場合。

これは、データベースにユーザーを作成するときには、usernameを格納し、スクリプトを使用してユーザーを確認する必要があることも意味します。usernameを返す必要があります。

関連する問題