@@ -230,85 +230,85 @@ |
||
230 | 230 | return; |
231 | 231 | } |
232 | 232 | switch ($_GET['response_type']) { |
233 | - case 'code': |
|
234 | - $Response->redirect( |
|
235 | - http_build_url( |
|
236 | - urldecode($redirect_uri), |
|
237 | - [ |
|
238 | - 'code' => $code, |
|
239 | - 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
240 | - ] |
|
241 | - ), |
|
242 | - 302 |
|
243 | - ); |
|
244 | - $Page->Content = ''; |
|
245 | - return; |
|
246 | - case 'token': |
|
247 | - $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], $redirect_uri); |
|
248 | - if ($token_data) { |
|
249 | - unset($token_data['refresh_token']); |
|
233 | + case 'code': |
|
250 | 234 | $Response->redirect( |
251 | - uri_for_token( |
|
252 | - http_build_url( |
|
253 | - urldecode($redirect_uri), |
|
254 | - array_merge( |
|
255 | - $token_data, |
|
256 | - [ |
|
257 | - 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
258 | - ] |
|
259 | - ) |
|
260 | - ) |
|
235 | + http_build_url( |
|
236 | + urldecode($redirect_uri), |
|
237 | + [ |
|
238 | + 'code' => $code, |
|
239 | + 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
240 | + ] |
|
261 | 241 | ), |
262 | 242 | 302 |
263 | 243 | ); |
264 | 244 | $Page->Content = ''; |
265 | 245 | return; |
266 | - } else { |
|
267 | - error_redirect('server_error', "Server can't get token data, try later"); |
|
268 | - return; |
|
269 | - } |
|
270 | - case 'guest_token': |
|
271 | - $Response |
|
272 | - ->header('cache-control', 'no-store') |
|
273 | - ->header('pragma', 'no-cache'); |
|
274 | - interface_off(); |
|
275 | - if ($User->user()) { |
|
276 | - $e = new ExitException( |
|
277 | - [ |
|
278 | - 'access_denied', |
|
279 | - 'Only guests, not users allowed to access this response_type' |
|
280 | - ], |
|
281 | - 403 |
|
282 | - ); |
|
283 | - $e->setJson(); |
|
284 | - throw $e; |
|
285 | - } |
|
286 | - $code = $OAuth2->add_code($client['id'], 'token', urldecode($_GET['redirect_uri'])); |
|
287 | - if (!$code) { |
|
288 | - $e = new ExitException( |
|
289 | - [ |
|
290 | - 'server_error', |
|
291 | - "Server can't generate code, try later" |
|
292 | - ], |
|
293 | - 500 |
|
294 | - ); |
|
295 | - $e->setJson(); |
|
296 | - throw $e; |
|
297 | - } |
|
298 | - $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], urldecode($_GET['redirect_uri'])); |
|
299 | - if ($token_data) { |
|
300 | - unset($token_data['refresh_token']); |
|
301 | - $Page->json($token_data); |
|
302 | - return; |
|
303 | - } else { |
|
304 | - $e = new ExitException( |
|
305 | - [ |
|
306 | - 'server_error', |
|
307 | - "Server can't get token data, try later" |
|
308 | - ], |
|
309 | - 500 |
|
310 | - ); |
|
311 | - $e->setJson(); |
|
312 | - throw $e; |
|
313 | - } |
|
246 | + case 'token': |
|
247 | + $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], $redirect_uri); |
|
248 | + if ($token_data) { |
|
249 | + unset($token_data['refresh_token']); |
|
250 | + $Response->redirect( |
|
251 | + uri_for_token( |
|
252 | + http_build_url( |
|
253 | + urldecode($redirect_uri), |
|
254 | + array_merge( |
|
255 | + $token_data, |
|
256 | + [ |
|
257 | + 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
258 | + ] |
|
259 | + ) |
|
260 | + ) |
|
261 | + ), |
|
262 | + 302 |
|
263 | + ); |
|
264 | + $Page->Content = ''; |
|
265 | + return; |
|
266 | + } else { |
|
267 | + error_redirect('server_error', "Server can't get token data, try later"); |
|
268 | + return; |
|
269 | + } |
|
270 | + case 'guest_token': |
|
271 | + $Response |
|
272 | + ->header('cache-control', 'no-store') |
|
273 | + ->header('pragma', 'no-cache'); |
|
274 | + interface_off(); |
|
275 | + if ($User->user()) { |
|
276 | + $e = new ExitException( |
|
277 | + [ |
|
278 | + 'access_denied', |
|
279 | + 'Only guests, not users allowed to access this response_type' |
|
280 | + ], |
|
281 | + 403 |
|
282 | + ); |
|
283 | + $e->setJson(); |
|
284 | + throw $e; |
|
285 | + } |
|
286 | + $code = $OAuth2->add_code($client['id'], 'token', urldecode($_GET['redirect_uri'])); |
|
287 | + if (!$code) { |
|
288 | + $e = new ExitException( |
|
289 | + [ |
|
290 | + 'server_error', |
|
291 | + "Server can't generate code, try later" |
|
292 | + ], |
|
293 | + 500 |
|
294 | + ); |
|
295 | + $e->setJson(); |
|
296 | + throw $e; |
|
297 | + } |
|
298 | + $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], urldecode($_GET['redirect_uri'])); |
|
299 | + if ($token_data) { |
|
300 | + unset($token_data['refresh_token']); |
|
301 | + $Page->json($token_data); |
|
302 | + return; |
|
303 | + } else { |
|
304 | + $e = new ExitException( |
|
305 | + [ |
|
306 | + 'server_error', |
|
307 | + "Server can't get token data, try later" |
|
308 | + ], |
|
309 | + 500 |
|
310 | + ); |
|
311 | + $e->setJson(); |
|
312 | + throw $e; |
|
313 | + } |
|
314 | 314 | } |