Differences Between: [Versions 310 and 311] [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403] [Versions 39 and 311]
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 $SESSION->loginerrormsg = $message; 38 redirect(new moodle_url(get_login_url())); 39 } else { 40 $SESSION->loginerrormsg = $error; 41 redirect(new moodle_url(get_login_url())); 42 } 43 } 44 45 // The authorization code generated by the authorization server. 46 $code = required_param('code', PARAM_RAW); 47 // The state parameter we've given (used in moodle as a redirect url). 48 $state = required_param('state', PARAM_LOCALURL); 49 50 $redirecturl = new moodle_url($state); 51 $params = $redirecturl->params(); 52 53 if (isset($params['sesskey']) and confirm_sesskey($params['sesskey'])) { 54 $redirecturl->param('oauth2code', $code); 55 redirect($redirecturl); 56 } else { 57 $SESSION->loginerrormsg = get_string('invalidsesskey', 'error'); 58 redirect(new moodle_url(get_login_url())); 59 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body