Angular-auth-oidc-client: IE broken from 10.0.8 own-wards, please check

Created on 14 Oct 2019  路  16Comments  路  Source: damienbod/angular-auth-oidc-client

IE broken from 10.0.8 own-wards, please check

image

investigate

Most helpful comment

ok we plan to add support for IE through a second package, only different will be the size, we use the jsrassign directly so that IE works, the other version uses the reduced one

All 16 comments

Hi @rajeshmuraleedharan , I'll check, haven't tested with IE

This isin non AOT (production) mode when running ng serve. Issue is probably with: jsrsasign-reduced

If you want to build the code directly, you can replace the jsrsasign-reduced with jsrsasign. Just change the imports to jsrsasign, and change the package dependency to jsrsasign in the packages.json and you can compile in any way you want.

https://github.com/damienbod/angular-auth-oidc-client/blob/master/package.json#L35

to

https://www.npmjs.com/package/jsrsasign

and

https://github.com/damienbod/angular-auth-oidc-client/blob/master/projects/angular-auth-oidc-client/src/lib/services/oidc.security.validation.ts#L2

import { hextob64u, KEYUTIL, KJUR } from 'jsrsasign-reduced';

to

import { hextob64u, KEYUTIL, KJUR } from 'jsrsasign';

Greetings Damien

I would check this and let you know
Thanks

Same issue. Downgrading to 10.0.7 resolves it for me. I was seeing the exception in jsrsasign-reduced. My Angular CLI application targets es5 which I assume jsrasign-reduced doesn't support because it had destructing syntax which IE 11 failed on.

Hi @ricksmt @rajeshmuraleedharan

The only reason for using jsrsasign-reduced is the package size. I removed the things from jsrsasign which are not required for this lib too work.

But this causes 2 problems now

  • jest integration
  • using with IE

I will either fix this, or revert back to jsrsasign

Not sure yet how to solve this.

Greetings Damien

Any news on this? We're having the same issue as well.

I can confirm, downgrading to 10.0.7 solved the issue, partly. Additionally, IE11 needs a polyfill for CustomEvent, e.g., node package custom-event-polyfill.

In case one relies on silent-renew.html, it has to be changed like this, without using the polyfill from above:

 window.onload = function() {
    /* The parent window hosts the Angular application */
    var parent = window.parent,
      isIE11 = !!window.MSInputMethodContext && !!document.documentMode,
      event;
    /* Send the id_token information to the oidc message handler */
    if (isIE11) {
      /** Alter*/
      event = document.createEvent('CustomEvent');
      event.initCustomEvent('oidc-silent-renew-message', false, false, window.location);
    } else {
      event = new CustomEvent('oidc-silent-renew-message', { detail: window.location });
    }
    parent.dispatchEvent(event);
  };

Any plans to have support IE11 in the latest release or will we always need to use 10.0.7?

need to think about this, IE is no longer recommended or supported from Microsoft, and browser updates on all operating systems is easy, we have a workaround where this can can directly using the src with 2 small changes. Maybe we can create an IE release parallel to each release. Not sure how to tackle this yet. I understand that IE is still required by many users...

ok we plan to add support for IE through a second package, only different will be the size, we use the jsrassign directly so that IE works, the other version uses the reduced one

Hi @ricksmt @rajeshmuraleedharan

The only reason for using jsrsasign-reduced is the package size. I removed the things from jsrsasign which are not required for this lib too work.

But this causes 2 problems now

  • jest integration
  • using with IE

I will either fix this, or revert back to jsrsasign

Not sure yet how to solve this.

Greetings Damien

Any plan to fix Jest integration?

We upgraded to the latest release but are unable to use IE. We receive error: Object doesn't support property or method 'entries'. What is the recommended approach to get oauth security working in IE 11? - Note this appears to be fixed by adding import 'core-js/es7/object'; to polyfills

Hi @jcbowyer I have no way of testing this, my IE doesn't work at all and I have no way of using or testing this. So any tests, feedback, would be great. I know @FabianGosebrink created an initial test for IE but we where unable to complete the tests. We are unclear how to proceed with this, because IE is not even supported by Microsoft now.

FYI, I had the same problem and fixed it by adding these two imports in the polyfills of my client project:

import 'core-js/es/array';
import 'core-js/es/object';

BTW, if you want to test your lib against IE and you haven't a working one on your machine, I think you can use one of the virtual machines that Microsoft provides for this kind of activities: https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

I created a separate issue, but it seems related to this. We are running IE 11, I have updated the various polyfills, but no luck.. I keeps seeing the error displayed here: https://github.com/damienbod/angular-auth-oidc-client/issues/820

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Expelz picture Expelz  路  4Comments

vicver82 picture vicver82  路  4Comments

Jonesie picture Jonesie  路  4Comments

haidelber picture haidelber  路  3Comments

nizarkhsib picture nizarkhsib  路  4Comments