Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
95a830e
Release 2.1.1
popomore Jun 4, 2017
4d3b4ef
refactor: upgrade koa-session, support egg2. [BREAKING CHANGE] (#10)
dead-horse Nov 9, 2017
882049e
Release 3.0.0
dead-horse Nov 9, 2017
b487d2c
docs: update readme to async function
dead-horse Nov 9, 2017
c47087c
feat: listen session events and warn (#11)
dead-horse Jan 9, 2018
0bb2177
Release 3.1.0
dead-horse Jan 9, 2018
452809f
doc: fix miss backticks (#12)
supperchong Feb 28, 2019
9c8bdf1
feat: warn if httpOnly set to false (#13)
dead-horse Apr 28, 2019
3281b99
chore: update travis
atian25 Oct 24, 2019
d3a57dd
test: add sameSite=none test case (#14)
fengmk2 Feb 1, 2020
792c61f
deps: koa-session@6 (#15)
dead-horse May 12, 2020
8fc59ba
Release 3.2.0
dead-horse May 12, 2020
d6dd5bb
test: add test case for session maxAge (#16)
dead-horse Jun 28, 2020
889a571
feat: as default not to log the session val
clChenLiang Mar 4, 2021
7b15ef5
fix: add break changes
clChenLiang Mar 4, 2021
b1dac1e
feat: ci
clChenLiang Mar 12, 2021
a5bc34d
fix: lint
clChenLiang Mar 12, 2021
f55daf4
doc: 配置项说明
clChenLiang Mar 19, 2021
a452a43
docs: 优化 github 阅读
clChenLiang Mar 19, 2021
de01cc6
Merge branch 'master' into master
clChenLiang Mar 22, 2021
86b5021
fix: lint
clChenLiang Mar 22, 2021
3e242c9
Merge branch 'master' of https://github.com/clChenLiang/egg-session
clChenLiang Mar 22, 2021
ac66065
feat: mock 日志
clChenLiang Mar 23, 2021
7b0eadd
feat: more time for log
clChenLiang Mar 23, 2021
fba5392
fix: ci 增加 invalid
clChenLiang Mar 23, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,12 @@ Once you use external session store, session is strong dependent on your externa

Support all configurations in [koa-session](https://github.com/koajs/session).

* logValue

```
Support not to print the session value when session event trigger log. Default to be true.
```

[View the default configurations](https://github.com/eggjs/egg-session/blob/master/config/config.default.js)

## Questions & Suggestions
Expand Down
4 changes: 2 additions & 2 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ module.exports = function(app) {
ctx.coreLogger.warn('[session][missed] key(%s)', key);
});
app.on('session:expired', ({ ctx, key, value }) => {
ctx.coreLogger.warn('[session][expired] key(%s) value(%j)', key, value);
ctx.coreLogger.warn('[session][expired] key(%s) value(%j)', key, app.config.session.logValue ? value : '');
});
app.on('session:invalid', ({ ctx, key, value }) => {
ctx.coreLogger.warn('[session][invalid] key(%s) value(%j)', key, value);
ctx.coreLogger.warn('[session][invalid] key(%s) value(%j)', key, app.config.session.logValue ? value : '');
});
};
1 change: 1 addition & 0 deletions config/config.default.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ exports.session = {
httpOnly: true,
encrypt: true,
// sameSite: null,
logValue: true,
};
77 changes: 77 additions & 0 deletions test/app/middleware/session.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,83 @@ describe('test/app/middlewares/session.test.js', () => {
});
});

describe('logValue', () => {
before(() => {
app = mm.app({ baseDir: 'logValue-false-session' });
return app.ready();
});
beforeEach(() => {
agent = request.agent(app.callback());
app.mockLog();
});
after(() => app.close());

it('when logValue is true, should log the session value', async () => {
let cookie;
app.mockLog();
mm(app.config.session, 'logValue', true);

await agent
.get('/maxAge?maxAge=100')
.expect(200)
.expect(res => {
cookie = res.headers['set-cookie'].join(';');
});

await sleep(200);

await request(app.callback())
.get('/get')
.set('cookie', cookie)
.expect(200)
.expect({});
app.notExpectLog('[session][expired] key(undefined) value("")', 'coreLogger');
});

it('when logValue is false, should not log the session value', async () => {
mm(app.config.session, 'logValue', false);
app.mockLog();
let cookie;

await agent
.get('/maxAge?maxAge=100')
.expect(200)
.expect(res => {
cookie = res.headers['set-cookie'].join(';');
});

await sleep(200);

await request(app.callback())
.get('/get')
.set('cookie', cookie)
.expect(200)
.expect({});

await sleep(1000);

app.expectLog('[session][expired] key(undefined) value("")', 'coreLogger');
});

it.only('when logValue is false, valid false, should not log the session value', async () => {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only 了

mm(app.config.session, 'logValue', false);
mm(app.config.session, 'valid', () => false);
app.mockLog();

await agent
.get('/set?foo=bar')
.expect(200)
.expect({ foo: 'bar' });

await agent
.get('/get');

await sleep(1000);

app.expectLog('[session][invalid] key(undefined) value("")', 'coreLogger');
});
});

describe('session maxage', () => {
before(() => {
app = mm.app({ baseDir: 'session-maxage-session' });
Expand Down
25 changes: 25 additions & 0 deletions test/fixtures/logValue-false-session/app/controller/home.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';

exports.get = function* (ctx) {
ctx.body = ctx.session;
};

exports.set = function* (ctx) {
ctx.session = ctx.query;
ctx.body = ctx.session;
};

exports.setKey = function* (ctx) {
ctx.session.key = ctx.query.key;
ctx.body = ctx.session;
};

exports.remove = function* (ctx) {
ctx.session = null;
ctx.body = ctx.session;
};

exports.maxAge = function* (ctx) {
ctx.session.maxAge = Number(this.query.maxAge);
ctx.body = ctx.session;
};
9 changes: 9 additions & 0 deletions test/fixtures/logValue-false-session/app/router.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
'use strict';

module.exports = function(app) {
app.get('/get', 'home.get');
app.get('/set', 'home.set');
app.get('/setKey', 'home.setKey');
app.get('/remove', 'home.remove');
app.get('/maxAge', 'home.maxAge');
};
6 changes: 6 additions & 0 deletions test/fixtures/logValue-false-session/config/config.default.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
'use strict';

exports.keys = 'keys';
exports.session = {
logValue: false,
};
3 changes: 3 additions & 0 deletions test/fixtures/logValue-false-session/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"name": "logvalue-false-session"
}