如何在Nginx上配置身份验证拦截器

时间:2018-01-02 09:21:03

标签: node.js nginx

我在Nginx服务器后面运行Node.js微服务 我已经创建了一个新的Node.js服务来验证和授权访问所有其他服务 我希望nginx允许基于身份验证服务响应访问所请求的服务

例如:
如果用户请求“/ user / id / edit”
我希望Nginx首先将请求指向“/ auth”
然后根据“/ auth”响应Nginx决定继续“/ user / id / edit”
或作为回复返回错误

我找不到任何有关此案例的教程或文档

1 个答案:

答案 0 :(得分:0)

以下是取自Spotify-Web-Auth-API-Example的示例代码:

app.get('/login', function(req, res) {

  var state = generateRandomString(16);
  res.cookie(stateKey, state);

  // your application requests authorization
  var scope = 'user-read-private user-read-email';
  res.redirect('https://accounts.spotify.com/authorize?' +
    querystring.stringify({
      response_type: 'code',
      client_id: client_id,
      scope: scope,
      redirect_uri: redirect_uri,
      state: state
    }));
});

从上面的代码可以看出,在node.js代码本身中,您可以执行重定向(将请求重定向到登录端点)到授权服务,然后控制访问。

您不需要明确地使用nginx配置。

此外,请阅读此相关查询 - Authorization approaches and design patterns for Node.js applications