No state in response after callback in oidc-client-js
Asked Answered
T

2

14

I think this is an error related to angular 5.2.8 & 6 . With angular 5.2.7 work fine. I create a ng5 branch and update angular to latest 5.2.8 and the error com in! anybody can direct me to an angular 5.2.8 and later sample with oidc-client-js ?

Thunder answered 11/3, 2018 at 12:48 Comment(5)
Maybe show some code or give some more contextBusiek
@Busiek See the github.com/client-sdk-samples/sample-angular-OidcClient/tree/…Thunder
I wonder if these are similar - github.com/damienbod/angular-auth-oidc-client/issues/195Allegro
Did you managed to figure this out? Experiencing the same issue.Omnivore
@21seconds my answer work fine to me , please mark it as accept if it work for you too.Thunder
T
9

It is caused by URI encoding of state in the window.location.hash. For me this fix the issue:

if (window.location.hash) {
window.location.hash = decodeURIComponent(window.location.hash);
// authorizedCallback returns wrong result when hash is URI encoded
this.oidcSecurityService.authorizedCallback();
} else {
this.oidcSecurityService.authorize();
}
Thunder answered 12/3, 2018 at 18:59 Comment(1)
Thanks, window.location.hash = decodeURIComponent(window.location.hash); This is the line I needed.Omnivore
I
7

If you are doing something custom like me and your issue has nothing to do with hash location, just ignore it:

  completeAuthentication(): Promise<void> {
    return this.manager.signinRedirectCallback().then(user => {
      this.user = user;
    }).catch((err) => {});
  }
Idiomorphic answered 3/6, 2019 at 19:32 Comment(1)
+1 for this, this is exactly what I initially did and this confirms it. I am using React with React-Router and for some reason the state is not read by the oidc-client.Waitabit

© 2022 - 2024 — McMap. All rights reserved.