Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
/*
3
 * Copyright 2011 Google Inc.
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
 
18
if (!class_exists('Google_Client')) {
19
  require_once dirname(__FILE__) . '/../autoload.php';
20
}
21
 
22
/**
23
 * Class to hold information about an authenticated login.
24
 *
25
 * @author Brian Eaton <beaton@google.com>
26
 */
27
#[AllowDynamicProperties]
28
class Google_Auth_LoginTicket
29
{
30
  const USER_ATTR = "sub";
31
 
32
  // Information from id token envelope.
33
  private $envelope;
34
 
35
  // Information from id token payload.
36
  private $payload;
37
 
38
  /**
39
   * Creates a user based on the supplied token.
40
   *
41
   * @param string $envelope Header from a verified authentication token.
42
   * @param string $payload Information from a verified authentication token.
43
   */
44
  public function __construct($envelope, $payload)
45
  {
46
    $this->envelope = $envelope;
47
    $this->payload = $payload;
48
  }
49
 
50
  /**
51
   * Returns the numeric identifier for the user.
52
   * @throws Google_Auth_Exception
53
   * @return
54
   */
55
  public function getUserId()
56
  {
57
    if (array_key_exists(self::USER_ATTR, $this->payload)) {
58
      return $this->payload[self::USER_ATTR];
59
    }
60
    throw new Google_Auth_Exception("No user_id in token");
61
  }
62
 
63
  /**
64
   * Returns attributes from the login ticket.  This can contain
65
   * various information about the user session.
66
   * @return array
67
   */
68
  public function getAttributes()
69
  {
70
    return array("envelope" => $this->envelope, "payload" => $this->payload);
71
  }
72
}