문제

다음을 기반으로 자체 OpenID 엔드포인트를 구현하려고 합니다. SMF 사용자 계정.내 코드는 phpMyOpenID 및 일부 SMF 인증 코드를 기반으로 했습니다.

지금까지는 잘 작동합니다.엔드포인트를 사용하여 모든 사이트에 로그인/등록할 수 있습니다.SMF에 로그인되어 있지 않으면 로그인을 요청하고 해당 SMF 로그인이 성공하면 이를 수락합니다.

그러나 SMF 로그인마다 다르지 않은 것 같습니다.즉.다른 사용자는 사이트 X에서 엔드포인트를 사용하려고 시도했으며 자신의 SMF 계정으로 로그인하고 사이트 X의 내 사용자 계정에 접속했다고 보고했습니다(저는 해당 사이트에서 이전에 OpenID 엔드포인트를 등록했습니다).

어떻게든 SMF 로그인을 보내거나 SMF 로그인별로 고유하게 만들어야 할 것 같습니다.내가 해야 할 일이 아마도 사소한 것이기 때문에 여기 SO에 물어보고 싶다고 생각했습니다. 아마도 수정해야 할 것이 더 있을 수도 있습니다.

살펴보고 싶다면 코드(PHP만 해당)는 다음과 같습니다.http://github.com/albertz/smf-openid-server

아니면 각 SMF 로그인에 대해 고유하게 만들기 위해 수행해야 할 작업을 설명할 수도 있습니다.

제가 계획하고 있는 또 다른 프로젝트는 멀티플레이어 C++ 게임의 OpenID 클라이언트입니다.호스팅 업체에는 OpenID를 통해 인증할 수 있는 사람들의 로그인만 허용하는 옵션이 있습니다.그리고 특정 사람만 로그인할 수 있게 하고 싶습니다.OpenID 로그인을 기반으로 고유한 문자열을 얻는 일반적인 방법은 무엇입니까?이 경우 나는 다음과 같은 것을 생각했습니다. http://{smf-openid-endpoint}/{smf-user} 또는 http://www.google.de/profiles/{google-user}.그러한 문자열을 얻는 정식 방법은 무엇입니까?

이 다른 질문은 내 주요 질문과 관련이 있을 수 있다고 생각하므로 여기에도 게시합니다.


관련 질문도 참조하십시오. 식별자 URL이 고유합니까?다른 용어는 무엇입니까?

도움이 되었습니까?

해결책

제가 받는 최종 사용자의 첫 번째 요청은 다음과 같습니다. checkid_setup.그 응답에서 나는 고유한 URL(내가 부르는 URL)을 지정할 수 있습니다. 고유한 문자열 내 질문에) openid.identity 필드.

지금 내 코드에서 그렇게 했는데 제대로 작동하는 것 같습니다.즉.일반 OpenID 엔드포인트 URL(예: SourceForge)을 입력하면 질문에서 제안한 방식으로 자동으로 확장됩니다.

두 번째 질문에 답하려면:확인된 식별자 URL 자체가 고유한 것으로 보아 이를 활용할 수 있을 것으로 보인다.이로 인해 이는 때때로 비밀스러워 보일 수 있습니다(예를 들어 Google의 경우 일부 해시일 뿐입니다).따라서 이는 서로 다른 사용자 간에 차이를 주기 위해 내부적으로 사용될 수 있습니다.그래픽 표현의 경우 OpenID 인증에서 가져와야 하는 실제 사용자 이름이나 메일 주소를 표시할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top