From 866b2db8ab650a01df259e5eb00b0fbc9f2a0a2e Mon Sep 17 00:00:00 2001 From: Wil Gieseler Date: Mon, 22 Feb 2021 00:29:01 -0800 Subject: [PATCH] Add email_verified and is_private_email --- lib/omniauth/strategies/apple.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/omniauth/strategies/apple.rb b/lib/omniauth/strategies/apple.rb index 741a36f..902a482 100644 --- a/lib/omniauth/strategies/apple.rb +++ b/lib/omniauth/strategies/apple.rb @@ -19,6 +19,8 @@ class Apple < OmniAuth::Strategies::OAuth2 uid { id_info['sub'] } + # Documentation on parameters + # https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api/authenticating_users_with_sign_in_with_apple info do prune!( sub: id_info['sub'], @@ -26,6 +28,8 @@ class Apple < OmniAuth::Strategies::OAuth2 first_name: first_name, last_name: last_name, name: (first_name || last_name) ? [first_name, last_name].join(' ') : email, + email_verified: email_verified, + is_private_email: is_private_email ) end @@ -38,6 +42,16 @@ def client ::OAuth2::Client.new(client_id, client_secret, deep_symbolize(options.client_options)) end + def email_verified + value = id_info['email_verified'] + value == true || value == "true" + end + + def is_private_email + value = id_info['is_private_email'] + value == true || value == "true" + end + def authorize_params super.merge(nonce: new_nonce) end