我正在为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('/');
});
});
}
但是我不能使用帖子路由来进行自己的用户登录。我怎么能根据请求获得一般认证,比如当我访问/登录时?
答案 0 :(得分:1)
我在Etherpad中编写了很多auth机制,但它是在几年前,我不知道它有多少变化。
Etherpad documentation中提供了您需要的API端点以及有关身份验证工作原理的文档,并且authentication documentation中讨论了具体的身份验证。
很难从你的问题中看出来,但看起来你想在/ login上有某种登录页面?如果是这样,请查看Etherpad如何实现基本身份验证并通过在/ login
创建新的快速端点来进行调整有各种插件(包括我开发的插件)可用于创建新的快速端点,an example is available in the ep_email_notifications Etherpad plugin
我是否从你的问题中找到了正确的结尾?