2017-01-08 3 views
3

우리가 오픈 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 인증 서버의 성공적인 인증 응답을 처리하도록 설정하려면 어떻게해야합니까?

답변

2

공식적인 지원 정책은 최신 버전의 상록수 브라우저 만 지원한다는 것입니다 (IE는 상록수가 아니므로 IE9 이상을 지원합니다). 퍼포먼스에 해를 끼치 지 않고 현재의 브라우저를 깨뜨리지 않는 픽스를 만들 수 있다면, 우리는 PR을 취할 것입니다.

+0

대답은 Aurelia 라우터를 포크로 만드는 것과 같고 라우터를 우리 케이스에서 작동하게 만들 수 있다면 해당 포크를 PR로 바꿔라. –

+0

요세미티의 사파리 9가 상록수 브라우저가 아니라는 암시가 있습니다. –

+1

요세미티 용 Safari의 최신 버전은 10입니다. –