Skip to content

Commit f872b34

Browse files
🌱 Add support to use rememberDevice param in polling and verify. (#111)
Similar to autoPush, we now support rememberDevice function that will be evaluated before making the request. Resolves: OKTA-158993
1 parent 2e772ee commit f872b34

File tree

3 files changed

+451
-15
lines changed

3 files changed

+451
-15
lines changed

lib/tx.js

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,18 @@ function getPollFn(sdk, res, ref) {
8989
else if (autoPush !== undefined && autoPush !== null) {
9090
opts.autoPush = !!autoPush;
9191
}
92-
if (rememberDevice) {
93-
opts.rememberDevice = true;
92+
if (typeof rememberDevice === 'function') {
93+
try {
94+
opts.rememberDevice = !!rememberDevice();
95+
}
96+
catch (e) {
97+
return Q.reject(new AuthSdkError('RememberDevice resulted in an error.'));
98+
}
99+
}
100+
else if (rememberDevice !== undefined && rememberDevice !== null) {
101+
opts.rememberDevice = !!rememberDevice;
94102
}
103+
95104
var href = pollLink.href + util.toQueryParams(opts);
96105
return http.post(sdk, href, getStateToken(res), {
97106
saveAuthnState: false
@@ -210,9 +219,18 @@ function link2fn(sdk, res, obj, link, ref) {
210219
data = util.omit(data, 'autoPush');
211220
}
212221

213-
if (data.rememberDevice !== undefined) {
214-
if (data.rememberDevice) {
215-
params.rememberDevice = true;
222+
var rememberDevice = data.rememberDevice;
223+
if (rememberDevice !== undefined) {
224+
if (typeof rememberDevice === 'function') {
225+
try {
226+
params.rememberDevice = !!rememberDevice();
227+
}
228+
catch (e) {
229+
return Q.reject(new AuthSdkError('RememberDevice resulted in an error.'));
230+
}
231+
}
232+
else if (rememberDevice !== null) {
233+
params.rememberDevice = !!rememberDevice;
216234
}
217235
data = util.omit(data, 'rememberDevice');
218236

0 commit comments

Comments
 (0)