2013-03-11 4 views
1

내 사이트에 Google 및 Facebook OAuth2.0을 포함하고 있습니다. 나는 그것을 작동 시켜서 등록 양식에 이름, 성 및 이메일을 미리 채 웁니다 (암호는 수동으로 입력해야합니다). 지금 나는 그 사용자가 암호를 입력하지 않고 로그인/등록 할 수 있도록하고 싶다. 내가 OAuth에서 아무런 문제없이 이메일 주소를 얻을 수 있다고 언급했으나 내 데이터베이스에 빈 암호 필드를 가질 수 없기 때문에 암호로 무엇을 사용해야하는지 알지 못합니다 (암호없이 사용자 이메일을 입력하면 로그인 할 수 있습니다).OAuth2.0 사용자 로그인/등록시 비밀번호로 무엇을 사용할 수 있습니까?

내 데이터베이스에서 전자 메일 및 암호 필드 (간단한 로그인)를 확인합니다.

OAuth 아이콘을 클릭하여 나중에 로그인 할 수 있도록 사용자를 OAuth (비밀번호 입력란)에 등록하려면 어떻게해야합니까?

사용자별로 공개되지 않은 키가 있습니까?

+0

그래서, 당신이 시도 무엇이 암호의 필요가 없다? –

+0

_ "내 데이터베이스에 빈 암호 필드가 없어서"_ - 왜 안 되니? 이 유스 케이스에 적합하지 않은 경우 데이터베이스 디자인을 수정하십시오. 또는 변경할 수없는 시스템이라면 아무도 추측 할 수없는 임의의 값/해시를 작성하면됩니다. – CBroe

+0

OAuth 응답의 어떤 데이터를 내 등록 필드의 비밀번호로 사용할 수 있는지 알고 싶습니다. 나는 아직 anyting 시도 havent. – BoonZ

답변

0

나는 OAuth의 진정한 의미를 이해하지 못했다고 생각합니다.

OAuth는 클라이언트의 역할을 리소스 소유자의 역할과 분리하고 계층을 생성하고 권한을 부여합니다. 클라이언트 응용 프로그램은 사용자가 제공 한 Authorsation 후에 리소스 소유자가 제어하는 ​​리소스에만 액세스합니다.

보호 자원에 액세스하기위한 보안 소유자의 자격 증명 인 클라이언트는 액세스 토큰 (특정 범위, 수명 및 기타 액세스 속성을 나타내는 문자열)을 가져옵니다.

액세스 토큰은 사용자의 승인을 얻어 인증 서버에 의해 제 3 자 클라이언트에게 발행됩니다. 클라이언트는 액세스 토큰을 사용하여 자원 소유자 서버가 호스트하는 보호 된 자원에 액세스합니다. 은 RFC 6749에 따르면

:

The authorization server MUST NOT issue client passwords or other 
client credentials to native application or user-agent-based 
application clients for the purpose of client authentication. The 
authorization server MAY issue a client password or other credentials 
for a specific installation of a native application client on a 
specific device. 

따라서