我正在为 etherpad 制作一个插件,用于检查用户是否经过身份验证。如果不是,则显示只读。我做到了这一点:
var eejs = require('ep_etherpad-lite/node/eejs');
var readOnlyManager = require("ep_etherpad-lite/node/db/ReadOnlyManager");
exports.route = function(hook_name, args, cb){
args.app.get('/p/:pad', function(req, res){
if(req.params.pad.indexOf('r.') === 0){
res.send(eejs.require("ep_etherpad-lite/templates/pad.html", {req: req}));
} else {
if(req.session.user){
res.send(eejs.require("ep_etherpad-lite/templates/pad.html", {req: req}));
} else {
readOnlyManager.getReadOnlyId(req.params.pad, function(err, readonlyID){
res.redirect('/p/'+readonlyID);
});
}
}
});
}
exports.logout = function(hook_name, args, cb){
args.app.get('/logout', function(req, res){
req.session.destroy(function(){
res.redirect('/');
});
});
}
但我不能使用发布路线来让我自己的用户登录。比如说当我访问 /login 时,我怎样才能获得像一般身份验证这样的请求?