2017-07-17 6 views
0

Ich habe meine Datenbank mit auth0 verbunden und wenn ich versuche, die Verbindung gibt 401 unbefugten Zugriff zurück. Ich habe Auth in meine Firewall erlaubt und das Passwort ist korrekt. Wie kommt es, dass es diesen Fehler bei der Suche nach Benutzername und Passwort zurückgibt?401 - nicht autorisierter Zugriff: Auth0 und azurblauen

Mehr Infos

in meinen einfachen Tabellen Ich habe sie nur Zugriff authentifiziert, muss ich etwas tun, dies zu umgehen?

function login(email, password, callback) { 
     //this example uses the "tedious" library 
     //more info here: http://pekim.github.io/tedious/index.html 
     var Connection = require('[email protected]').Connection; 
     var Request = require('[email protected]').Request; 
     var TYPES = require('[email protected]').TYPES; 

     var connection = new Connection({ 
     userName: 'username', 
     password: 'pass', 
     server: 'server', 
     options: { 
      database: 'db', 
      encrypt: true, 
      rowCollectionOnRequestCompletion: true 
     } 
     }); 

     var query = "SELECT Id, Email, Password " + 
     "FROM user WHERE Email = @Email"; 

     connection.on('debug', function (text) { 
     // Uncomment next line in order to enable debugging messages 
     // console.log(text); 
     }).on('errorMessage', function (text) { 
     console.log(JSON.stringify(text, null, 2)); 
     return callback(text); 
     }).on('infoMessage', function (text) { 
     // Uncomment next line in order to enable information messages 
     // console.log(JSON.stringify(text, null, 2)); 
     }); 

     connection.on('connect', function (err) { 
     if (err) { return callback(err); } 

     var request = new Request(query, function (err, rowCount, rows) { 
      if (err) { 
      callback(new Error(err)); 
      } else if (rowCount < 1) { 
      callback(new WrongUsernameOrPasswordError(email)); 
      } else { 
      bcrypt.compare(password, rows[0][2].value, function (err, isValid) { 
       if (err) { callback(new Error(err)); } 
       else if (!isValid) { callback(new WrongUsernameOrPasswordError(email)); } 
       else { 
       callback(null, { 
        user_id: rows[0][0].value, 
        email: rows[0][1].value 
       }); 
       } 
      }); 
      } 
     }); 

     request.addParameter('Email', TYPES.VarChar, email); 
     connection.execSql(request); 
     }); 
    } 

Antwort

0

Da Sie Azure Mobile App verwenden, die the Node.js server SDK für Ihre App enthalten. Dann müssen Sie tedious nicht installieren, um mit der Azure SQL-Datenbank zu arbeiten. Das SDK hat dafür bereits mssql abgeschlossen. Im Grunde können Sie this code sample verwenden, um Ihre Datenbank zu verbinden.

var api = { 
    // an example of executing a SQL statement directly 
    get: (request, response, next) => { 
     var query = { 
      sql: 'UPDATE TodoItem SET complete = @completed', 
      parameters: [ 
       { name: 'completed', value: request.query.completed } 
      ] 
     }; 

     request.azureMobile.data.execute(query) 
      .then(function (results) { 
       response.json(results); 
      }); 
    }, 
    // an example of executing a stored procedure 
    post: (request, response, next) => { 
     var query = { 
      sql: 'EXEC completeAllStoredProcedure @completed', 
      parameters: [ 
       { name: 'completed', value: request.query.completed } 
      ] 
     }; 

     request.azureMobile.data.execute(query) 
      .then(function (results) { 
       response.json(results); 
      }); 
    } 
}; 

module.exports = api; 

Weitere Informationen finden Sie unter this documentation.

Verwandte Themen