2012-08-02 3 views
0

Google 하이브리드 Openid (OpenId + OAuth1 [0]) 프로토콜을 통해 인증 된 사용자가 있습니다. google에서 최신 API를 사용하려면 oauth2 기반 인증으로 변경해야합니다. 그가 openid 사용자 중 하나 인 경우 oauth2 로그인 후에 알 수있는 방법이 있습니까?Google Openid 및 Oauth

ID가 매우 다르게 보입니다. google_oauth2에있는 사용자 ID는 다음과 같습니다

123456789

와 구글 하이브리드의 사용자 ID는 다음과 같습니다

https://www.google.com/accounts/o8/id?id=AItOawnlIGFin5I0F059UdqSYbK9JmA99e99ms 

함께이 맞는 몇 가지 방법이 있나요? oauth 기반의 호출이 openid 사용자 ID를 검색 할 수 있습니까? 로그인 목적으로 사용하기 때문에 로그인 페이지에 2 개의 Google 로그인 버튼을 넣고 싶지는 않습니다. 사용자가이 사실을 이해한다고 상상하기 어렵습니다.

이러한 문제를 해결하는 일반적인 전략이 있습니까?

[0] 당신이 필요로하는 무엇을해야 combination OpenId/OAuth call에 대한 https://developers.google.com/accounts/docs/OpenID#oauth

답변

0

좋아, 내가 할 수있는 방법이있는 것 같습니다. 구현하고 확인해야하지만 이론적으로는 다음과 같이 작동합니다 :

send user to oauth2 login 
    -> if known, log him in 
    -> if unknown send him to openid with immediate mode 
      -> if successfull log him in, associate the former oauth connection 
      -> if error the user is unknown and will be created with his oauth token 
사용자가 구글에 로그인하지 않은 경우

즉시 모드도 실패 할 수 있지만, 그는 단지 다시 OAuth2를 춤에서 온 이후 그가해야 할 것이다 그 사이에 로그 아웃되면 그는 즉시 리디렉션되기 때문에 거의 발생하지 않습니다.

0

구글 회담. 그러나 문서의 모든 링크는 OAuth 1.0에 있습니다. 따라서 Google에서 OAuth 1.0 인터페이스를 사용하지 않으므로 조사를 통해 OAuth 2.0과 호환되는지 확인해야합니다.

+0

안녕하세요. 현재 진행중인 작업입니다. 그러나 이것은 oauth1이며 최신 API에는 OAuth2가 필요합니다. – squiddle