Etherpad:最好的方式来挂钩身份验证

时间:2013-12-28 19:55:14

标签: node.js express etherpad

我正在为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('/');
      });
    });
}

但是我不能使用帖子路由来进行自己的用户登录。我怎么能根据请求获得一般认证,比如当我访问/登录时?

1 个答案:

答案 0 :(得分:1)

我在Etherpad中编写了很多auth机制,但它是在几年前,我不知道它有多少变化。

Etherpad documentation中提供了您需要的API端点以及有关身份验证工作原理的文档,并且authentication documentation中讨论了具体的身份验证。

很难从你的问题中看出来,但看起来你想在/ login上有某种登录页面?如果是这样,请查看Etherpad如何实现基本身份验证并通过在/ login

创建新的快速端点来进行调整

有各种插件(包括我开发的插件)可用于创建新的快速端点,an example is available in the ep_email_notifications Etherpad plugin

我是否从你的问题中找到了正确的结尾?