우리가 오픈 ID 연결을 사용하고 있기 때문에, 우리는이처럼 보이는 오픈 ID 연결 인증 응답, 처리 할 아우렐 리아 라우터가 필요합니다사파리에서 성공적인 오픈 ID 연결 인증 응답을 처리 <= 9
https://client.example.org/signin-oidc#
access_token=SlAV32hkKG
&token_type=bearer
&id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
&expires_in=3600
&state=af0ifjsldkj
위해를 이를 위해 우리는 라우터를 이와 같이 푸시 상태로 설정했습니다.
// switch from hash (#) to slash (/) navigation
routerConfig.options.pushState = true;
이것은 대부분의 웹 브라우저에서 성공적으로 작동합니다. Aurelia 라우터는/signin-oidc 라우트를 처리하고 클라이언트 측 코드가 프래그먼트에 액세스 할 수 있습니다. 좋은.
WebKit bug #24701은 리디렉션시 조각을 제거하고 성공적인 OpenID Connect 인증 응답이 리디렉션 (302 Found)이므로 Yosemite의 Safari < = 9.0에 문제가 있습니다. 결과 : 브라우저는 단편이없는 다음을 보냅니다. 안좋다.
https://client.example.org/signin-oidc
해결 해시 앞에 슬래시 넣어이다 요세미티에
웹킷 버그 해결https://client.example.org/signin-oidc/#
access_token=SlAV32hkKG
&token_type=bearer
&id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
&expires_in=3600
&state=af0ifjsldkj
, 사파리 < = 9의 단편을 포함한다.
해결 되었습니까? 아니.
해결 방법을 사용하면 URI의 /#
부분을 더 이상 이해할 수없는 Aurelia 라우터가 손상됩니다. Aurelia 라우터가 OpenID Connect 인증 서버의 성공적인 인증 응답을 처리하도록 설정하려면 어떻게해야합니까?
대답은 Aurelia 라우터를 포크로 만드는 것과 같고 라우터를 우리 케이스에서 작동하게 만들 수 있다면 해당 포크를 PR로 바꿔라. –
요세미티의 사파리 9가 상록수 브라우저가 아니라는 암시가 있습니다. –
요세미티 용 Safari의 최신 버전은 10입니다. –