1

我正在为 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 时,我怎样才能获得像一般身份验证这样的请求?

4

1 回答 1

1

我在 Etherpad 中编写了很多身份验证机制,但那是几年前的事了,我不知道从那以后它发生了多大的变化。

您需要的 API 端点和有关身份验证工作原理的文档可在Etherpad 文档中找到,具体而言,身份验证在身份验证文档中进行了讨论。

从你的问题很难看出,但看起来你想在 /login 有某种登录页面?如果是这样,请查看 Etherpad 如何实现基本身份验证并通过在 /login 创建一个新的快速端点来适应它

有各种插件(包括我开发的插件)可用于创建新的快速端点,ep_email_notifications Etherpad 插件中提供了一个示例

我从你的问题中得到了正确的结果吗?

于 2013-12-28T22:40:24.900 回答