2011-07-11 18 views
0

私は以下のcoffescriptコードを持っています。エクスプレスとmongoose-authで遊んで、documentationによると、ミドルウェアを使用すると、ルーティングのドロップを有効にする必要があります。つまり、私が/ auth/twitterを呼び出した後、私はtwitterでログインする必要があります。残念ながら何らかの理由で404エラーが発生しました。何か案は?エクスプレス - マングース - 認証ルーティングの問題

ありがとうございます。

express  = require 'express' 
mongoose  = require 'mongoose' 
mongoose_auth = require 'mongoose-auth' 

UserSchema = new mongoose.Schema {} 
User 

UserSchema.plugin mongoose_auth, { 
    everymodule: { 
    everyauth: { 
     User:() -> 
     return User 
    } 
    } 
    twitter: { 
    everyauth: { 
     myHostname:  'http://localhost:3000' 
     consumerKey: '' 
     consumerSecret: '' 
     redirectPath: '/' 
    } 
    } 
} 

mongoose.model 'User', UserSchema 

mongoose.connect 'mongodb://localhost/foobar' 

User = mongoose.model 'User' 

app = module.exports = express.createServer() 

app.configure -> 
    app.set 'views', "#{__dirname}/views" 
    app.set 'view engine', 'jade' 
    app.use require('stylus').middleware { src: "#{__dirname}/public" } 
    app.use express.static "#{__dirname}/public" 
    app.use express.bodyParser() 
    app.use express.methodOverride() 
    #app.use app.router 
    app.use express.cookieParser() 
    app.use express.session { secret: 'foobarmoocowetc' } 
    mongoose_auth.middleware() 

app.configure 'development',() -> 
    app.use express.errorHandler { 
    dumpExceptions: true 
    showStack: true 
    } 

app.configure 'production',() -> 
    app.use express.errorHandler() 

app.get '/', (req, res) -> 
    res.render 'page/index' 

mongoose_auth.helpExpress app 

app.listen 3000 
console.log 'Express server listening on port %d in %s mode', app.address().port, app.settings.env 

答えて

2

あなたはexpressのミドルウェアリストにmongoose_auth.middleware()を入れていません。あなたは、彼らが道あなたがそれミドルウェアは、先ほど作成し、無視されてきた

app.use mongoose_auth.midleware()

を必要としています。おそらくあなたはREADMEの例に従っていますが、彼はcreateServerと呼んだときにミドルウェアを設定していますが、app.useを使用しています。これは問題ありませんが、適切に登録するためにはミドルウェア機能をapp.useに渡す必要があります。

それはです。少なくともの問題です。それを修正し、何が起こるかを見てください。すべてのオートパワーを稼働させるには完璧でなければならない設定の詳細がたくさんあるので、他にもいくつか微調整が必​​要な場合があります。

+0

私は同じ誤りを犯しました。私の愚かなこと。ありがとう。 :) –