Rails Omniauth Gem 및 Google OpenID를 사용할 때 사용자의 전자 메일을 어떻게 필요로하지 않습니까?
-
13-11-2019 - |
문제
내 현재 /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
.
행운을 빈다.나는 이것을 테스트하지 않았고, 소스를 읽는 것만으로 인해.
제휴하지 않습니다 StackOverflow