Session Timeout if "Remember Me" is not checked (#11125)

* fix: convert loginDays and loginSeconds to number inputs

* feat: configurable session timeout for when "Remember Me" is not checked

closes #11124

* test: addition tests to check loginDays and sessionDuration settings

* test: also test loginSeconds override
This commit is contained in:
Julian Lam
2023-01-05 14:10:02 -05:00
committed by GitHub
parent 2ea1510f8e
commit 69806662e6
5 changed files with 123 additions and 20 deletions

View File

@@ -294,8 +294,9 @@ function continueLogin(strategy, req, res, next) {
req.session.cookie.maxAge = duration;
req.session.cookie.expires = new Date(Date.now() + duration);
} else {
req.session.cookie.maxAge = false;
req.session.cookie.expires = false;
const duration = meta.config.sessionDuration * 1000;
req.session.cookie.maxAge = duration || false;
req.session.cookie.expires = duration ? new Date(Date.now() + duration) : false;
}
plugins.hooks.fire('action:login.continue', { req, strategy, userData, error: null });

View File

@@ -126,13 +126,13 @@
<div class="col-sm-6">
<div class="form-group">
<label for="loginDays">[[admin/settings/user:session-time-days]]</label>
<input id="loginDays" type="text" class="form-control" data-field="loginDays" placeholder="[[admin/settings/user:session-time-days]]" />
<input id="loginDays" type="number" min="0" class="form-control" data-field="loginDays" placeholder="[[admin/settings/user:session-time-days]]" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="loginSeconds">[[admin/settings/user:session-time-seconds]]</label>
<input id="loginSeconds" type="text" class="form-control" data-field="loginSeconds" placeholder="[[admin/settings/user:session-time-seconds]]" />
<input id="loginSeconds" type="number" min="0" step="60" class="form-control" data-field="loginSeconds" placeholder="[[admin/settings/user:session-time-seconds]]" />
</div>
</div>
<div class="col-xs-12">
@@ -141,6 +141,13 @@
</p>
</div>
</div>
<div class="form-group">
<label for="sessionDuration">[[admin/settings/user:session-duration]]</label>
<input id="sessionDuration" type="number" step="60" min="0" class="form-control" data-field="sessionDuration">
<p class="help-block">[[admin/settings/user:session-duration-help]]</p>
</div>
<div class="form-group">
<label for="onlineCutoff">[[admin/settings/user:online-cutoff]]</label>
<input id="onlineCutoff" type="text" class="form-control" data-field="onlineCutoff">