Differences Between: [Versions 310 and 311] [Versions 310 and 400] [Versions 310 and 401] [Versions 310 and 402] [Versions 310 and 403]
1 <?php 2 3 // This file is part of Moodle - http://moodle.org/ 4 // 5 // Moodle is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // Moodle is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 17 18 /** 19 * An oauth2 redirection endpoint which can be used for an application: 20 * http://tools.ietf.org/html/draft-ietf-oauth-v2-26#section-3.1.2 21 * 22 * This is used because some oauth servers will not allow a redirect urls 23 * with get params (like repository callback) and that needs to be called 24 * using the state param. 25 * 26 * @package core 27 * @copyright 2012 Dan Poltawski 28 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 29 */ 30 31 require_once(__DIR__ . '/../config.php'); 32 33 $error = optional_param('error', '', PARAM_RAW); 34 if ($error) { 35 $message = optional_param('error_description', '', PARAM_RAW); 36 if ($message) { 37 print_error($message); 38 } else { 39 print_error($error); 40 } 41 die(); 42 } 43 44 // The authorization code generated by the authorization server. 45 $code = required_param('code', PARAM_RAW); 46 // The state parameter we've given (used in moodle as a redirect url). 47 $state = required_param('state', PARAM_LOCALURL); 48 49 $redirecturl = new moodle_url($state); 50 $params = $redirecturl->params(); 51 52 if (isset($params['sesskey']) and confirm_sesskey($params['sesskey'])) { 53 $redirecturl->param('oauth2code', $code); 54 redirect($redirecturl); 55 } else { 56 print_error('invalidsesskey'); 57 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body