覆盖所需的依赖模块导出函数
Override required dependency module exported function
Node.js 项目使用通过 npm install 安装的 keycloak-nodejs-connect 依赖项。
依赖项 index.js 看起来像:
...
var GrantManager = require('./middleware/auth-utils/grant-manager');
...
function Keycloak (config, keycloakConfig) {
this.config = new Config(keycloakConfig);
this.grantManager = new GrantManager(this.config);
...
module.exports = Keycloak;
./middleware/auth-utils/grant-manager.js 看起来像:
...
const Token = require('./token');
....
module.exports = GrantManager;
...
./middleware/auth-utils/token.js 看起来像
...
Token.prototype.isExpired = function isExpired () {
return ((this.content.exp * 1000) < Date.now());
};
...
module.exports = Token;
项目源码使用Keycloak模块:
var Keycloak = require('keycloak-connect');
如何覆盖项目源码里面的function isExpired源码?
唯一让我想到的是在 node-modules...
中覆盖 token.js
其中一个解决方案可以是:
You fork 'keycloak-nodejs-connect' git repo made your changes and after
in your package.json put your forked repository.
- 将
Token
导入您的项目
- 覆盖
Token
原型上的 isExpired
方法
var Token = require('keycloak-connect/middleware/auth-utils/token')
Token.prototype.isExpired = {
// your implementation
}
Node.js 项目使用通过 npm install 安装的 keycloak-nodejs-connect 依赖项。
依赖项 index.js 看起来像:
...
var GrantManager = require('./middleware/auth-utils/grant-manager');
...
function Keycloak (config, keycloakConfig) {
this.config = new Config(keycloakConfig);
this.grantManager = new GrantManager(this.config);
...
module.exports = Keycloak;
./middleware/auth-utils/grant-manager.js 看起来像:
...
const Token = require('./token');
....
module.exports = GrantManager;
...
./middleware/auth-utils/token.js 看起来像
...
Token.prototype.isExpired = function isExpired () {
return ((this.content.exp * 1000) < Date.now());
};
...
module.exports = Token;
项目源码使用Keycloak模块:
var Keycloak = require('keycloak-connect');
如何覆盖项目源码里面的function isExpired源码? 唯一让我想到的是在 node-modules...
中覆盖 token.js其中一个解决方案可以是:
You fork 'keycloak-nodejs-connect' git repo made your changes and after in your package.json put your forked repository.
- 将
Token
导入您的项目 - 覆盖
Token
原型上的isExpired
方法
var Token = require('keycloak-connect/middleware/auth-utils/token')
Token.prototype.isExpired = {
// your implementation
}