簡體   English   中英

如何在節點+ Express應用中設置路由以通過身份驗證方法?

[英]How do I set up routes in my node + express app to pass an authenticate method?

我正在遵循auth0后端設置教程,並且想知道如何在單獨的文件而不是app.js設置路由。

在教程中,他們創建

var authenticate = jwt({
  secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
  audience: process.env.AUTH0_CLIENT_ID
});

然后app.use('/secured', authenticate);

如果我想在某些路由文件夾“ routes/index.js設置路由,並且想使用此authenticate() ,如何在app.js

我知道我必須做一些類似var routes = require('./routes/index.js');事情var routes = require('./routes/index.js'); 但是,在這種情況下,如何設置app.use( .. ) ,使其使用authenticate()

謝謝

您可以在./routes/index.js定義一個routes模塊,如下所示:

// ./routes/index.js

module.exports = function (app) {
   app.get('/secured', getSecuredController);
};

function getSecuredController (req, res) {
   res.send('/secured OK');
}

在主app.js文件中:

// ./app.js

var initializeRoutes = require('./routes');
var authenticate = jwt({..});

app.use('/secured', authenticate);
initializeRoutes(app);

您可以從文件route / index.js返回路由器:

// routes/index.js

const express = require('express');

module.exports = function(options) {
    const router = express.Router();

    router.get('/', (req, res, next) => {
        // process route...
    });

    // define other routes...

    return router;
};

並在服務器中使用它:

// server.js

const express = require('express');
const router = require('./routes/index.js');

const authenticate = jwt({
  secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
  audience: process.env.AUTH0_CLIENT_ID
});

var app = express()

app.use('/secured', authenticate, router());

這將使您的路由器可配置和可重用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM