FEATURE: raise an exception when the email is missing in the OpenId callback
This commit is contained in:
parent
1db40fce22
commit
7c65adfd6f
|
@ -9,13 +9,14 @@ class Auth::OpenIdAuthenticator < Auth::Authenticator
|
|||
end
|
||||
|
||||
def after_authenticate(auth_token)
|
||||
|
||||
result = Auth::Result.new
|
||||
|
||||
data = auth_token[:info]
|
||||
identity_url = auth_token[:extra][:response].identity_url
|
||||
result.email = email = data[:email]
|
||||
|
||||
raise Discourse::InvalidParameters.new(:email) if email.blank?
|
||||
|
||||
# If the auth supplies a name / username, use those. Otherwise start with email.
|
||||
result.name = data[:name] || data[:email]
|
||||
result.username = data[:nickname] || data[:email]
|
||||
|
|
|
@ -16,4 +16,10 @@ describe Auth::OpenIdAuthenticator do
|
|||
result = auth.after_authenticate(info: {email: user.email}, extra: {response: response})
|
||||
result.user.should == user
|
||||
end
|
||||
|
||||
it "raises an exception when email is missing" do
|
||||
auth = Auth::OpenIdAuthenticator.new("test", "id", trusted: true)
|
||||
response = OpenStruct.new(identity_url: 'abc')
|
||||
-> { auth.after_authenticate(info: {}, extra: { response: response }) }.should raise_error(Discourse::InvalidParameters)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue