使用OAuth2保护nodejs应用程序,不会自动重定向到允许/拒绝页面

时间:2014-09-14 13:01:57

标签: node.js oauth-2.0 sails.js passport.js oauth2orize

我已经设置了一个项目来保护使用OAuth2的风帆应用程序:https://github.com/lucj/sails-oauth2-api

我的授权代码授权存在问题,我无法解决。

基本上,这是我遵循的步骤:
- 运行风帆应用程序
- 运行unTrustedClient(示例文件夹中的节点untrustedClient.js)
- 然后,我从网络浏览器发出以下网址:

http://localhost:1337/oauth/authorize?client_id=O3UTGRFNI1&response_type=code&redirect_uri=http://localhost:1339&scope=http://localhost:1337

注意:client_id的值是应用程序启动时sails终端中untrustedTestClient显示的值

这会将我重定向到“登录”页面,这很好。

https://dl.dropboxusercontent.com/u/2330187/login.png

但是当我提交凭据(默认为me@gmail.com /密码)时,我被重定向到/ index而不是原始URL(上面的那个)。

https://dl.dropboxusercontent.com/u/2330187/index.png

我需要重新发布上面的URL,以显示对话框页面(带有Allow / Deny选项的页面)。

https://dl.dropboxusercontent.com/u/2330187/allow_deny.png

我正在使用'connect-ensure-login'中间件。

app.get('/oauth/authorize',
    login.ensureLoggedIn(),
    server.authorize(function(clientId, redirectURI, done) {

      Client.findOne({clientId: clientId}, function(err, client) {
        if (err) { return done(err); }
        if (!client) { return done(null, false); }
        if (client.redirectURI != redirectURI) { return done(null, false); }
        return done(null, client, client.redirectURI);
      });
    }),
    server.errorHandler(),
    function(req, res) {
      res.render('dialog', { transactionID: req.oauth2.transactionID,
                             user: req.user,
                             client: req.oauth2.client
      });
    }
  ); 

如何修复此问题,以便在输入凭据后自动完成重定向?

0 个答案:

没有答案