Skip to content
This repository has been archived by the owner on Mar 3, 2022. It is now read-only.

On Windows Edge Browser, appear Invalid pointer error. #1104

Closed
ghzjtian opened this issue May 9, 2020 · 4 comments
Closed

On Windows Edge Browser, appear Invalid pointer error. #1104

ghzjtian opened this issue May 9, 2020 · 4 comments
Labels

Comments

@ghzjtian
Copy link

ghzjtian commented May 9, 2020

1. I have to say that this is a very good library.

2. I encountered a problem, and an Invalid pointer error occurred on Windows Edge (Microsoft Edge 44.17763.1.0, Microsoft EdgeHTML 18.17763), which prevented me from logging in to the front-end page:

` ERROR Error: Uncaught (in promise): Error: Invalid pointer Error: Invalid pointer    at t.prototype.replaceState (https://test.example.com:447/main-es2015.b46827baf41876384c92.js:1:1093808)    at prototype.replaceState (https://test.example.com:447/main-es2015.b46827baf41876384c92.js:1:898830)    at t.prototype.replaceState (https://test.example.com:447/main-es2015.b46827baf41876384c92.js:1:896209)    at kg.prototype.setBrowserUrl (https://test.example.com:447/main-es2015.b46827baf41876384c92.js:1:1161305)    at Anonymous function (https://test.example.com:447/main-es2015.b46827baf41876384c92.js:1:1155122)    at Od.prototype._next (https://test.example.com:447/main-es2015.b46827baf41876384c92.js:1:1080768)    at g.prototype.next (https://test.example.com:447/main-es2015.b46827baf41876384c92.js:1:782754)    at U.prototype._next (https://test.example.com:447/main-es2015.b46827baf41876384c9 `

3. But this problem I did not encounter on the new version of Windows Edge (Version 81.0.416.72).

4. My project is an Angular project, the environment is:

`` `
Angular CLI: 8.1.3
Node: 12.6.0
OS: darwin x64
Angular: 8.1.3

`` `

The version of oidc-client installed using npm is:"oidc-client": "^ 1.5.0",

5. After debugging, I found that the number of URL characters of the authentication server is lower than 4035, it is no problem, if it is higher than 4035 characters, it will report Invalid pointer Error.

Such as the following URL, less than 4035 characters, no error

`` `

https://test.example.com:447/signin-oidc#id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE1ODg5MDU1MDQsImV4cCI6MTU4ODk5NTE2NywiaXNzIjoiaHR0cHM6Ly9jYW50b25kZXZpaXMuZ2xvYmV0b29scy5zeXN0ZW1zOjQ0OCIsImF1ZCI6IkEzUyIsIm5vbmNlIjoiNTcyZDFmOGQ5ZDdjNDQ3MDg4NTFiYzA2NWM4YWY1ZTkiLCJpYXQiOjE1ODg5MDU1MDQsImF0X2hhc2giOiItRk43UzVVUnNpT1ZpVUF4ekJtUFRBIiwic2lkIjoiNmEyY2E5MTI5ZTEyM2MwMjc5MzUzNTc2OWM2ZjBiODkiLCJzdWIiOiI2YTk1OTY3OS1lYjBjLTQ1YmQtODQ1Mi03ODZlMGE4N2NmYjciLCJhdXRoX3RpbWUiOjE1ODg5MDU1MDQsImlkcCI6ImxvY2FsIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQWZ0ZXJTYWxlcyIsIkJhc2VMb2NhdGlvbiI6IkZSQSIsIkFjY2Vzc2libGVBcHBsaWNhdGlvbiI6IkEzUyIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiJUaW0iLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiI2YTk1OTY3OS1lYjBjLTQ1YmQtODQ1Mi03ODZlMGE4N2NmYjciLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9lbWFpbGFkZHJlc3MiOiJqaW5nd Glhbi56ZW5nQGdsb2JldG9vbHMuY29tIiwiRnVsbE5hbWUiOiJUaW0iLCJJc0VtYWlsQ29uZmlybWVkIjpmYWxzZSwiUGFzc3dvcmRIYXNoIjoiQVFBQUFBRUFBQ2NRQUFBQUVPRFBxWXJEclhjQVVIaEN1SGRVdUVCbGx0NGxFTGUxcGxvT1dTdlRVQjhlcDJNSGV1dWdxeWZOVDFuVmVNeHZWQT09IiwiYW1yIjpbInB3ZCJdLCJqdGkiOiJjY2M3YzI3My00NGEzLTQ0NDctOTdiYS01MTI3MTljOTI2Y2QifQ.ClLY6fDzHE-l0rUp7BiNpeAhNusekLRg0ZOxVsYXgqc & token_type = Bearer & expires_in = 3153600 & scope = openid% 20profile% 20email% 20phone% 20address% 20api1 & state = 9353d93a66d644e4b2470a473b15a28c & session_state = xa1Nu-_vQs33KuqtXsdnjMKADBQUMObsKs5ZfaKhqwg.

`` `

If it is higher than 4035 characters, an error will be reported (that is, the number of claims in the token is large (business needs, cannot be reduced))

@brockallen
Copy link
Member

Use code flow instead.

@ghzjtian
Copy link
Author

Sorry, I do n’t know much about Identityserver4 authentication terminal. Is it the code flow described in this link [Grant type] (https://docs.identityserver.io/en/latest/topics/grant_types.html)?

@ghzjtian
Copy link
Author

ghzjtian commented May 10, 2020

It is found that the id_token and access_token that the Auth server sends back to the front end carry same Claim information. Now the id_token Claims information is removed(set AlwaysIncludeUserClaimsInIdToken to false), the length of the URL is reduced by 1/4(Select all role in A3S URL length is 3096 characters), and the Edge browser can now log in normally.

@cblackw
Copy link

cblackw commented Jul 1, 2020

I had this same error but I was able to solve it by following the workaround suggested by @AKlaus at angular/angular#17843

Adding this script to the main page

  <script>
    window.history.replaceState = function (){ console.log('Empty stub for history.replaceState()') };
  </script>

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

3 participants