Rails Omniauth Gem 및 Google OpenID를 사용할 때 사용자의 전자 메일을 어떻게 필요로하지 않습니까?

StackOverflow https://stackoverflow.com/questions/4983109

문제

내 현재 /config/initializers/omniauth.rb 파일이 들어 있습니다 :

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :open_id, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end
.

google을 통해 / auth / google을 통해 Google을 통해 로그인 할 때 Google 보고서 :

도메인은 Google 계정 이메일의 일부 정보를 요청하고 있습니다. - 이메일 주소 : 이름 (전자 메일)

내 응용 프로그램은 사용자의 전자 메일이 필요하지 않으므로이 장벽을 제거하고 싶습니다.이 요구 사항을 제거하기 위해 어쨌든 거기에 있습니까?페이스 북의 경우, 옵션의 "범위"속성을 추가 할 수 있습니다 (예 : )

provider :facebook, 'APP_ID', 'APP_SECRET', {:scope => ''}
.

도움이 되었습니까?

해결책

OpenID 전략 (Google AP가 상속받는 Google AP가 상속)의 소스를 신속하게 검토 한 결과, 속성 교환 (AX) Auth에 필요한 대비 값과 선택할 수있는 속성을 지정할 수 있습니다.

옵션은 여기에서 소스 코드를 참조하십시오 : https://github.com/intridea/omniauth/blob/master/oa-openid/lib/omniauth/strategies/open_id.rb

이메일을 필요한 속성으로 제거하기 위해 옵션을 변경할 수 있다고 생각합니다.

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :open_id, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id', :required => [], :optional => []
end
.

행운을 빈다.나는 이것을 테스트하지 않았고, 소스를 읽는 것만으로 인해.

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