2011-02-03 4 views
4

내 사이트에서 openID를 구현하려고 시도하고 있으므로 Plaxo과 같은 질문을 읽었습니다. 현재 라이브러리를 사용하여 사용자를 인증 할 수 있습니다. 하지만주의 일부 업체식별자에 사용자 이름이없는 경우 어떻게 OpenID 사용자 이름을 식별합니까?

계정. 하지만 위와 같이 openID URL을 사용하는 사용자를 어떻게 구별합니까? 나는 심지어 구글과 구글 프로필을 가지고 있다는 것을 보았다. 그렇다면 사용자가 사용자 이름을 제공하지 않거나 고유 한 openID를 말해야하는 경우 어떻게 사용자를 식별합니까?

답변

3

OpenID는 사용자의 '사용자 이름'을 공급자에게 공개하지 않습니다. ID로 사용되는 확인 된 URL이 제공되지만 해당 URL은 불투명 한 문자열로 처리되어야합니다.

필요한 경우 수동으로 사용자에게 메시지를 보내거나 속성 교환을 사용해야합니다 (어느 쪽도 안전하지 않습니다).

+0

+1. 작은 수정 그러나 : 특성 Exchange는 Sreg 사용자 이름 데이터 (둘 다 서명 할 수 있습니다)와 마찬가지로 안전합니다. – timdream

+0

그래서 확인 된 문자열로 그 서버를 ID로 사용하려고합니다. –

1

openid 응답을 받으면 각 계정마다 고유 한 "openid.identity"매개 변수가 있습니다. 그것은 매우 긴 반 임의의 문자열이므로이 표시 도움이되지 않습니다 :

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

경우는의 "별칭"필드 또는 전자 메일 주소의 로컬 부분에 좋은 디스플레이 이름 기지를 생성 할 수 있습니다 이러한 속성이 제공됩니다. 마지막으로 사용자에게 묻습니다.

+1

예를 들어, StackOverflow는 'user12345'와 같은 가짜 사용자 이름을 생성하여 사용자에게 프로필에서 변경하도록 요청합니다. – timdream

+0

openid.identity 또는 openid.claimed_id가 필요합니까? interwebs에있는 많은 사람들이 신원보다는 claimed_id를 사용한다고 말했습니다. 한 예 : http : // stackoverflow.com/a/3364025/1114457' –

관련 문제