2010-12-30 2 views
2

내 사이트 로그인에 OpenId를 사용하고 싶지만 등록을 위해서는 내 사이트가 항상 OpenId 제공 업체에서 제공하지 않는 추가 정보 (사용자 이름 및 이메일 주소)가 필요합니다. 보시다시피 두 가지 주요 옵션이 있습니다 :Openid 등록 양식에 대한 안내 지침

(1) 앞면에서 OpenId url을 요청하고 OpenId 공급자를 통해 리디렉션하고 유효성을 확인한 다음 내 사이트로 돌아와 추가 정보를 입력하십시오. 이렇게하면 오픈 아이디 제공자가 반환 한 정보가 플러스이지만 정보 제공자가 반환 한 식별자를 저장할 위치는 제외하고 오프 스테이지가 될 수있는 다단계 등록 프로세스가있는 경우 두 번째 양식을 미리 채울 수 있습니다. .

(2) OpenId 공급자 URL을 포함하여 필요한 모든 정보를 표시하는 단일 양식. 제출시 db에 정보를 저장하고 OpenId로 리디렉션하고 공급자로부터 반환 될 때 유효성 검사 식별자를 포함하도록 db 레코드를 업데이트합니다. 이것은 간단하지만 인증 이전에 양식이 채워지기 때문에 OpenId 공급자가 반환 한 추가 정보를 절대로 사용하지 않는다는 의미입니다.

나는 가장 좋은 접근 방법에 관해서 몇 가지 아이디어/생각을 정말로하고 있습니까? 차이점이 있으면 ASP.NET MVC 3 DotNetOpenAuth 사용하고 있습니다.

**이 비밀은 클라이언트에게 보낼 수 없으므로 서버에 저장해야합니다. 이 단계에서는 널 (null)이 아닌 다른 필드가 없기 때문에 등록 데이터베이스 테이블에 넣을 수 없습니다. 세션을 사용할 수 없으므로 어디에 두어야합니까?

+0

"세션을 사용할 수 없습니다"는 의미는 무엇입니까? 당신은 항상 DB에 데이터를 저장하는 자신의 세션을 만들 수 있습니다 ... – Cameron

+0

당신은 세션을 사용할 수 없거나 쿠키를 사용할 수 없다는 뜻입니까? 일명 쿠키없는 세션 – JOBG

+0

즉, 처리 중이거나 프로세스 (즉, 데이터베이스) 세션이 내 회사에서 허용되지 않았 음을 의미합니다. 그러나 쿠키가 허용되므로 암호화 된 쿠키가 옵션 일 수 있습니다. –

답변

1

두 세계에서 최고의 성능을 발휘하십시오!

this sample을 확인하십시오.이 양식은 OpenID와 전자 메일 주소를 모두 사용하는 양식을 하나만 가지고있는 것을 보여줍니다 (다른 필드도 임의로 생각할 수 있음). 식별자를 입력 한 후 (사용자의 세부 정보를 입력하는 동안) 백그라운드에서 즉시 OpenID 검색 프로세스가 시작됩니다. 신규 사용자의 경우 세부 정보가 포함 된 전체 로그인이되지 않을 가능성이 높으므로 사용자가 버튼을 클릭하여 인증을 진행합니다. 그러면 인증이 완료되면 OP가 자동으로 제공하는 세부 정보가 입력됩니다. 그런 다음 사용자는 원하는 경우 변경하고 마지막으로 "지금 계정 만들기"버튼을 클릭 할 수 있습니다.

0

나는이 일을 겪고 있으며 옵션 (1)을 선택했습니다. OpenId 댄스를하고 공급자가 사용할 수있는 필드를 얻은 다음 사용자에게 빈칸을 채우라고 요청합니다 .

네, 여러 단계가 있지만 전반적으로 사용자에게는 덜 효과적입니다. OpenId 제공 업체가 제공 할 수있는 정보를 입력 할 필요가 없습니다.