Skip to content

Commit 0c9ea9c

Browse files
author
Michael Weibel
committed
fix: signinSilent fails when no user is available
This fixes an issue introduced in 1.6.0 (14ed108). If there is no user available, signinSilent won't work because of the following TypeError: ``` oidc-client.min.js:formatted:8872 Error during OIDC autologin TypeError: Cannot read property 'id_token' of null at oidc-client.min.js:formatted:8232 ```
1 parent 3e135b9 commit 0c9ea9c

File tree

6 files changed

+79
-65
lines changed

6 files changed

+79
-65
lines changed

dist/oidc-client.js

Lines changed: 31 additions & 31 deletions
Large diffs are not rendered by default.

dist/oidc-client.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/oidc-client.js

Lines changed: 31 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/oidc-client.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/UserManager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ export class UserManager extends OidcClient {
158158
return this._useRefreshToken(args);
159159
}
160160
else {
161-
args.id_token_hint = args.id_token_hint || (this.settings.includeIdTokenInSilentRenew && user.id_token);
161+
args.id_token_hint = args.id_token_hint || (this.settings.includeIdTokenInSilentRenew && user && user.id_token);
162162
return this._signinSilentIframe(args);
163163
}
164164
});

test/unit/UserManager.spec.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ describe("UserManager", function () {
108108

109109
navArgs.silentRequestTimeout.should.equal(123);
110110
done();
111+
return Promise.resolve()
111112
}
112113
subject.signinSilent();
113114
});
@@ -122,6 +123,7 @@ describe("UserManager", function () {
122123
subject._signin = function(args, nav, navArgs){
123124
navArgs.silentRequestTimeout.should.equal(234);
124125
done();
126+
return Promise.resolve()
125127
}
126128
subject.signinSilent({silentRequestTimeout:234});
127129
});
@@ -136,9 +138,21 @@ describe("UserManager", function () {
136138
subject._signin = function(args, nav, navArgs){
137139
args.prompt.should.equal("foo");
138140
done();
141+
return Promise.resolve()
139142
}
140143
subject.signinSilent({prompt:"foo"});
141144
});
145+
146+
it("should work when having no User present", function(done) {
147+
settings.silent_redirect_uri = "http://client/silent_callback";
148+
subject = new UserManager(settings);
149+
150+
subject._signin = function(){
151+
done();
152+
return Promise.resolve()
153+
}
154+
subject.signinSilent({prompt:"foo"});
155+
})
142156
});
143157

144158
});

0 commit comments

Comments
 (0)