如何编辑 url 以注销 ApostropheCMS
How to edit the url to log out of ApostropheCMS
我正在研究一种将 OAuth2 登录到 ApostropheCMS 的特定策略。登录系统后,我需要通过允许我执行 OAuth2 流程的身份服务器 url 关闭会话。
而不是使用 http://localhost:3000/logout, use http://localhost:port/auth/oauth2/logout。但是我找不到在 ApostropheCMS 中使用注销 link 编辑 url 的位置。
目前无法编辑注销路由路径。然而,callback on that route is fairly simple,所以简单地编写自己的路由来做同样的事情可能相当容易。
self.apos.app.get('/logout', function(req, res) {
return req.session.destroy(function(err) {
if (err) {
self.apos.utils.error(err);
}
res.redirect('/');
});
});
我相信你是说你不需要复制注销功能(你已经这样做了),你需要在管理栏中更改注销 link。幸运的是,有一个很好的方法。
与大多数模块一样,apostrophe-login
模块在名为 addAdminBarItems
的方法中添加了其管理栏按钮。该方法如下所示:
self.addAdminBarItems = function() {
var items = [];
var key;
if (self.options.resetKnownPassword) {
key = self.__meta.name + '-reset-known-password';
self.apos.adminBar.add(key, 'Change Password', null);
items.push(key);
}
key = self.__meta.name + '-logout';
self.apos.adminBar.add(key, 'Log Out', null, { last: true, href: '/logout' });
items.push(key);
if (items.length > 1) {
self.apos.adminBar.group({
label: 'Account',
items: items,
last: true
});
}
};
我们可以覆盖它以满足我们的需要。
在项目级别创建 lib/modules/apostrophe-login/index.js
。不要从 node_modules 复制和粘贴整个内容,这从来都不是必需的,我们在这里覆盖了一种方法。撇号会自动看到并将我们的更改应用于原始内容。
文件如下所示:
// in lib/modules/apostrophe-login/index.js of your project
module.exports = {
construct: function(self, options) {
self.addAdminBarItems = function() {
key = self.__meta.name + '-logout';
self.apos.adminBar.add(key, 'Log Out', null, { last: true, href: '/anywhere/you/want/it/to/go' });
};
}
};
这将替换我们需要更改的方法,而不会更改任何其他内容。
我正在研究一种将 OAuth2 登录到 ApostropheCMS 的特定策略。登录系统后,我需要通过允许我执行 OAuth2 流程的身份服务器 url 关闭会话。
而不是使用 http://localhost:3000/logout, use http://localhost:port/auth/oauth2/logout。但是我找不到在 ApostropheCMS 中使用注销 link 编辑 url 的位置。
目前无法编辑注销路由路径。然而,callback on that route is fairly simple,所以简单地编写自己的路由来做同样的事情可能相当容易。
self.apos.app.get('/logout', function(req, res) {
return req.session.destroy(function(err) {
if (err) {
self.apos.utils.error(err);
}
res.redirect('/');
});
});
我相信你是说你不需要复制注销功能(你已经这样做了),你需要在管理栏中更改注销 link。幸运的是,有一个很好的方法。
与大多数模块一样,apostrophe-login
模块在名为 addAdminBarItems
的方法中添加了其管理栏按钮。该方法如下所示:
self.addAdminBarItems = function() {
var items = [];
var key;
if (self.options.resetKnownPassword) {
key = self.__meta.name + '-reset-known-password';
self.apos.adminBar.add(key, 'Change Password', null);
items.push(key);
}
key = self.__meta.name + '-logout';
self.apos.adminBar.add(key, 'Log Out', null, { last: true, href: '/logout' });
items.push(key);
if (items.length > 1) {
self.apos.adminBar.group({
label: 'Account',
items: items,
last: true
});
}
};
我们可以覆盖它以满足我们的需要。
在项目级别创建 lib/modules/apostrophe-login/index.js
。不要从 node_modules 复制和粘贴整个内容,这从来都不是必需的,我们在这里覆盖了一种方法。撇号会自动看到并将我们的更改应用于原始内容。
文件如下所示:
// in lib/modules/apostrophe-login/index.js of your project
module.exports = {
construct: function(self, options) {
self.addAdminBarItems = function() {
key = self.__meta.name + '-logout';
self.apos.adminBar.add(key, 'Log Out', null, { last: true, href: '/anywhere/you/want/it/to/go' });
};
}
};
这将替换我们需要更改的方法,而不会更改任何其他内容。