Skip to content

Commit bf3e4d7

Browse files
committed
handel modify2
1 parent 9f8f78e commit bf3e4d7

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

lib/oauth2_basic_authenticator.rb

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -147,30 +147,29 @@ def log(info)
147147
end
148148

149149
def fetch_user_details(token, id)
150-
user_json_url = SiteSetting.oauth2_user_json_url.sub(":token", token.to_s).sub(":id", id.to_s)
151-
user_json_method = SiteSetting.oauth2_user_json_url_method.downcase.to_sym
152-
150+
user_json_url = "https://api.github.com/user"
151+
user_emails_url = "https://api.github.com/user/emails"
152+
user_json_method = :get
153+
153154
bearer_token = "Bearer #{token}"
154155
connection = Faraday.new { |f| f.adapter FinalDestination::FaradayAdapter }
155156
headers = { "Authorization" => bearer_token, "Accept" => "application/json" }
157+
158+
# Fetch user details
156159
user_json_response = connection.run_request(user_json_method, user_json_url, nil, headers)
157-
160+
158161
log <<-LOG
159162
user_json request: #{user_json_method} #{user_json_url}
160-
161163
request headers: #{headers}
162-
163164
response status: #{user_json_response.status}
164-
165165
response body:
166166
#{user_json_response.body}
167167
LOG
168-
168+
169169
if user_json_response.status == 200
170170
user_json = JSON.parse(user_json_response.body)
171-
172171
log("user_json:\n#{user_json.to_yaml}")
173-
172+
174173
result = {}
175174
if user_json.present?
176175
json_walk(result, user_json, :user_id)
@@ -180,21 +179,22 @@ def fetch_user_details(token, id)
180179
json_walk(result, user_json, :email_verified)
181180
json_walk(result, user_json, :avatar)
182181
end
182+
183183
# Fetch user emails
184184
user_emails_response = connection.run_request(user_json_method, user_emails_url, nil, headers)
185-
185+
186186
log <<-LOG
187187
user_emails request: #{user_json_method} #{user_emails_url}
188188
request headers: #{headers}
189189
response status: #{user_emails_response.status}
190190
response body:
191191
#{user_emails_response.body}
192192
LOG
193-
193+
194194
if user_emails_response.status == 200
195195
user_emails = JSON.parse(user_emails_response.body)
196196
log("user_emails:\n#{user_emails.to_yaml}")
197-
197+
198198
primary_email = user_emails.find { |email| email["primary"] && email["verified"] }
199199
if primary_email
200200
result[:email] = primary_email["email"]
@@ -206,12 +206,13 @@ def fetch_user_details(token, id)
206206
# Handle error fetching emails
207207
result[:email] = nil
208208
end
209-
209+
210210
result
211211
else
212212
nil
213213
end
214214
end
215+
215216

216217
def primary_email_verified?(auth)
217218
return true if SiteSetting.oauth2_email_verified

0 commit comments

Comments
 (0)