kimsuelim/omniauth-naver

raw_properties['gender'] Issue

Opened this issue · 1 comments

private method의 gender 부분에서, gender property 를 요청하지 않으면 raw_properties['gender'] 가 nilClass error 를 발생시킵니다. 해당 부분에 대해서 if raw_properties['gender'].present? && raw_properties['gender'].include? 'M'
라는지 검증을 한 번 더 거쳐야 할 것 같습니다

def gender
return 'male' if raw_properties['gender'].include? 'M'
return 'female' if raw_properties['gender'].include? 'F'
end

최근 release된 버전을 사용하시나요? 최근 버전에서는 변경된 API에 대응되어 이 문제가 발생하지 않을 것 같습니다.

raw_properties hash에서 gender를 access 시 값이 없다면 nil을 return하기에 return if raw_properties['gender'].nil? 에서 gender 값이 없는 예외를 처리하고 있습니다.
https://github.com/kimsuelim/omniauth-naver/blob/master/lib/omniauth/strategies/naver.rb#L32

hash 테스트

[4] pry(main)> hash = {}
=> {}
[5] pry(main)> hash['gender']
=> nil
[6] pry(main)> hash['gender'].nil?
=> true