@@ -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