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/** 19 * Class to hold information about an authenticated login. 20 * 21 * @author Brian Eaton <beaton@google.com> 22 */ 23class Google_LoginTicket { 24 const USER_ATTR = "id"; 25 26 // Information from id token envelope. 27 private $envelope; 28 29 // Information from id token payload. 30 private $payload; 31 32 /** 33 * Creates a user based on the supplied token. 34 * 35 * @param string $envelope Header from a verified authentication token. 36 * @param string $payload Information from a verified authentication token. 37 */ 38 public function __construct($envelope, $payload) { 39 $this->envelope = $envelope; 40 $this->payload = $payload; 41 } 42 43 /** 44 * Returns the numeric identifier for the user. 45 * @throws Google_AuthException 46 * @return 47 */ 48 public function getUserId() { 49 if (array_key_exists(self::USER_ATTR, $this->payload)) { 50 return $this->payload[self::USER_ATTR]; 51 } 52 throw new Google_AuthException("No user_id in token"); 53 } 54 55 /** 56 * Returns attributes from the login ticket. This can contain 57 * various information about the user session. 58 * @return array 59 */ 60 public function getAttributes() { 61 return array("envelope" => $this->envelope, "payload" => $this->payload); 62 } 63} 64