【问题标题】:CompoundJS and passport supportCompoundJS 和护照支持
【发布时间】:2013-02-18 11:19:21
【问题描述】:

我正面临复合护照的这个问题。我已经按照指南中的步骤进行操作,但是当我尝试访问 /auth/github 时无法正常工作。

有什么建议吗?

GET /auth/github controller: auth action: github
Params: {"controller":"auth","action":"github"}
>>>  perform github
Error: Undefined action auth#github(/auth/github)
at Object.FlowControl.call.context.innerNext (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:67:27)
at Array.FlowControl.call.collection.forEach.queue.push.ctl.context.inAction [as 1] (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:139:28)
at run (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:102:27)
at Array.FlowControl.call.action [as 0] (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:60:13)
at run (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:102:27)
at FlowControl.call.compiledAction.(anonymous function) (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:90:9)
at Controller.call (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:49:16)
at Controller.call (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:93:10)
at Controller.perform (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/node_modules/kontroller/lib/flow-control.js:18:10)
at ControllerBrigde.callControllerAction (/Users/javiermanzanomorilla/Development/workspace/authapp/node_modules/compound/lib/controller-bridge.js:95:9)

【问题讨论】:

    标签: javascript node.js oauth passport.js compoundjs


    【解决方案1】:

    我认为你还没有初始化护照。

    如果您使用的是复合护照,则必须通过调用 config/environment 中的 init 函数来对其进行初始化。

        var pass_connect=require('compound-passport');
         app.configure(function(){
         ....
    
       //init the compound passport
        pass_connect.init(compound);
    
        app.use(app.router);
     });
    

    如果你想手动初始化它,你必须调用这两个方法:

     var passport=require('passport');    
     var Strategy = require('passport-github').Strategy;
        passport.use(new Strategy({
        clientID: conf.github.clientID,
        clientSecret: conf.github.secret,
        callbackURL: conf.baseURL + 'auth/github/callback'
    }, exports.callback));
    
    app.get('/auth/github',
        passport.authenticate('github'));
    app.get('/auth/github/callback',
        passport.authenticate('github', { failureRedirect: '/' }),
        exports.redirectOnSuccess);
    

    对不起我的英语。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-22
      • 2017-07-27
      • 2017-12-23
      • 2016-07-28
      • 2017-10-19
      • 2017-12-19
      • 1970-01-01
      • 2013-04-10
      相关资源
      最近更新 更多