0

複合パスポートでこの問題に直面しています。ガイドの手順にはすでに従いましたが、/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)
4

1 に答える 1

0

パスポートを初期化していないと思います。

複合パスポートを使用している場合は、config/environment で init 関数を呼び出して初期化する必要があります。

    var pass_connect=require('compound-passport');
     app.configure(function(){
     ....

   //init the compound passport
    pass_connect.init(compound);

    app.use(app.router);
 });

手動で初期化する場合は、これらの 2 つのメソッドを呼び出す必要があります。

 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);

私の英語でごめんなさい。

于 2013-04-19T08:21:53.590 に答える