1: <?php
2: /**
3: * Copyright 2012-2014 Rackspace US, 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: namespace OpenCloud\Identity\Resource;
19:
20: use OpenCloud\Common\PersistentObject;
21:
22: /**
23: * Token class for token functionality.
24: *
25: * A token is an opaque string that represents an authorization to access cloud resources. Tokens may be revoked at any
26: * time and are valid for a finite duration.
27: *
28: * @package OpenCloud\Identity\Resource
29: */
30: class Token extends PersistentObject
31: {
32: /** @var string The token ID */
33: private $id;
34:
35: /** @var string Timestamp of when this token will expire */
36: private $expires;
37:
38: protected static $url_resource = 'tokens';
39:
40: /**
41: * @param $id Sets the ID
42: */
43: public function setId($id)
44: {
45: $this->id = $id;
46: }
47:
48: /**
49: * @return string Returns the ID
50: */
51: public function getId()
52: {
53: return $this->id;
54: }
55:
56: /**
57: * @param $expires Set the expiry timestamp
58: */
59: public function setExpires($expires)
60: {
61: $this->expires = $expires;
62: }
63:
64: /**
65: * @return string Get the expiry timestamp
66: */
67: public function getExpires()
68: {
69: return $this->expires;
70: }
71:
72: /**
73: * @return bool Check whether this token has expired (i.e. still valid or not)
74: */
75: public function hasExpired()
76: {
77: return time() >= strtotime($this->expires);
78: }
79: }
80: