401 - 未经授权的访问:Auth0 和 azure

401 - unauthorized access : Auth0 and azure

我已将我的数据库连接到 auth0,当我尝试连接时 returns 401 未授权访问。我已经允许身份验证进入我的防火墙并且密码是正确的。为什么搜索用户名和密码时返回此错误?

更多信息

在我的简单表格中,我只允许他们进行身份验证访问,我是否需要做些什么来解决这个问题?

function login(email, password, callback) {
      //this example uses the "tedious" library
      //more info here: http://pekim.github.io/tedious/index.html
      var Connection = require('tedious@1.11.0').Connection;
      var Request = require('tedious@1.11.0').Request;
      var TYPES = require('tedious@1.11.0').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);
      });
    }

因为您使用的是 Azure 移动应用程序,其中包括 the Node.js server SDK for your app. Then you don't need to install tedious to work with Azure SQL database. The SDK has already wrapped up mssql to do this. So basically you can use this code sample 来连接您的数据库。

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;

更多信息请参考this documentation