【问题标题】:401 - unauthorized access : Auth0 and azure401 - 未经授权的访问:Auth0 和 azure
【发布时间】:2017-07-19 15:09:48
【问题描述】:

我已将我的数据库连接到 auth0,当我尝试连接时返回 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);
      });
    }

【问题讨论】:

    标签: javascript azure authentication auth0 azure-sql-database


    【解决方案1】:

    由于您使用的是 Azure 移动应用程序,其中包含用于您的应用程序的 the Node.js server SDK。然后,您无需安装 tedious 即可使用 Azure SQL 数据库。 SDK 已经封装了mssql 来执行此操作。所以基本上你可以使用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

    【讨论】:

      猜你喜欢
      • 2021-02-23
      • 2021-02-02
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多