����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 216.73.216.45 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/www/vendor/rackspace/php-opencloud/doc/_build/html/services/identity/ |
Upload File : |
<!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tokens — php-opencloud 1.12.1 documentation</title> <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="top" title="php-opencloud 1.12.1 documentation" href="../../index.html"/> <link rel="up" title="Identity v2" href="index.html"/> <link rel="next" title="Users" href="users.html"/> <link rel="prev" title="Identity v2" href="index.html"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script> </head> <body class="wy-body-for-nav" role="document"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-nav-search"> <a href="../../index.html" class="fa fa-home"> php-opencloud</a> <div role="search"> <form id ="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../autoscale/index.html">Auto Scale v2</a><ul> <li class="toctree-l2"><a class="reference internal" href="../autoscale/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../autoscale/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../autoscale/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../autoscale/index.html#further-links">Further Links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../compute/index.html">Compute v2</a><ul> <li class="toctree-l2"><a class="reference internal" href="../compute/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../compute/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../compute/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../compute/index.html#further-links">Further Links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../database/index.html">Databases v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../database/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../database/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../database/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../database/index.html#further-links">Further Links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../dns/index.html">DNS v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../dns/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../dns/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../dns/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../dns/index.html#further-links">Further Links</a></li> </ul> </li> <li class="toctree-l1 current"><a class="reference internal" href="index.html">Identity v2</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="index.html#setup">Setup</a></li> <li class="toctree-l2 current"><a class="reference internal" href="index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="index.html#further-links">Further Links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../image/index.html">Images v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../image/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../image/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../image/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../image/index.html#further-links">Further Links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../load-balancer/index.html">Load Balancer v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../load-balancer/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../load-balancer/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../load-balancer/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../load-balancer/index.html#further-links">Further Links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../monitoring/index.html">Monitoring v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../monitoring/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../monitoring/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../monitoring/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../monitoring/index.html#further-links">Further links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../networking/index.html">Networking v2</a><ul> <li class="toctree-l2"><a class="reference internal" href="../networking/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../networking/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../networking/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../networking/index.html#further-links">Further links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../object-store/index.html">Object Store v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../object-store/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../object-store/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../object-store/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../object-store/index.html#further-links">Further links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../orchestration/index.html">Orchestration v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../orchestration/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../orchestration/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../orchestration/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../orchestration/index.html#further-links">Further links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../queues/index.html">Queues v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../queues/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../queues/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../queues/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../queues/index.html#further-links">Further links</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../volume/index.html">Volumes v1</a><ul> <li class="toctree-l2"><a class="reference internal" href="../volume/index.html#setup">Setup</a></li> <li class="toctree-l2"><a class="reference internal" href="../volume/index.html#operations">Operations</a></li> <li class="toctree-l2"><a class="reference internal" href="../volume/index.html#glossary">Glossary</a></li> <li class="toctree-l2"><a class="reference internal" href="../volume/index.html#further-links">Further links</a></li> </ul> </li> </ul> <ul> <li class="toctree-l1"><a class="reference internal" href="../../debugging.html">Debugging</a><ul> <li class="toctree-l2"><a class="reference internal" href="../../debugging.html#strategy-1-meaningful-exception-handling">Strategy 1: Meaningful exception handling</a></li> <li class="toctree-l2"><a class="reference internal" href="../../debugging.html#strategy-2-wire-logging">Strategy 2: Wire logging</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../caching-creds.html">Caching credentials</a><ul> <li class="toctree-l2"><a class="reference internal" href="../../caching-creds.html#filesystem-example">Filesystem example</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../iterators.html">Iterators</a><ul> <li class="toctree-l2"><a class="reference internal" href="../../iterators.html#common-behaviour">Common behaviour</a></li> <li class="toctree-l2"><a class="reference internal" href="../../iterators.html#very-important-note">Very important note</a></li> <li class="toctree-l2"><a class="reference internal" href="../../iterators.html#using-paginated-collections">Using paginated collections</a></li> <li class="toctree-l2"><a class="reference internal" href="../../iterators.html#setting-up-a-paginatediterator">Setting up a PaginatedIterator</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../regions.html">Rackspace regions</a></li> <li class="toctree-l1"><a class="reference internal" href="../../url-types.html">URL types</a><ul> <li class="toctree-l2"><a class="reference internal" href="../../url-types.html#internalurl">internalURL</a></li> <li class="toctree-l2"><a class="reference internal" href="../../url-types.html#publicurl">publicURL</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../logging.html">Logging</a><ul> <li class="toctree-l2"><a class="reference internal" href="../../logging.html#logger-injection">Logger injection</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../http-clients.html">HTTP Clients</a><ul> <li class="toctree-l2"><a class="reference internal" href="../../http-clients.html#default-http-headers">Default HTTP headers</a></li> <li class="toctree-l2"><a class="reference internal" href="../../http-clients.html#user-agents">User agents</a></li> <li class="toctree-l2"><a class="reference internal" href="../../http-clients.html#other-functionality">Other functionality</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../auth.html">Authentication</a><ul> <li class="toctree-l2"><a class="reference internal" href="../../auth.html#service-catalog">Service Catalog</a></li> </ul> </li> </ul> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../../index.html">php-opencloud</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="breadcrumbs navigation"> <ul class="wy-breadcrumbs"> <li><a href="../../index.html">Docs</a> »</li> <li><a href="index.html">Identity v2</a> »</li> <li>Tokens</li> <li class="wy-breadcrumbs-aside"> <a href="../../_sources/services/identity/tokens.txt" rel="nofollow"> View page source</a> </li> </ul> <hr/> </div> <div role="main"> <div class="section" id="tokens"> <h1>Tokens<a class="headerlink" href="#tokens" title="Permalink to this headline">¶</a></h1> <div class="section" id="create-token-authenticate"> <h2>Create token (authenticate)<a class="headerlink" href="#create-token-authenticate" title="Permalink to this headline">¶</a></h2> <p>In order to generate a token, you must pass in the JSON template that is sent to the API. This is because Rackspace’s operation expects a slightly different entity body than OpenStack Keystone.</p> <p>To do this, and then generate a token:</p> <div class="highlight-php"><div class="highlight"><pre><span class="nv">$json</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getCredentials</span><span class="p">();</span> <span class="sd">/** @var $response Guzzle\Http\Message\Response */</span> <span class="nv">$response</span> <span class="o">=</span> <span class="nv">$service</span><span class="o">-></span><span class="na">generateToken</span><span class="p">(</span><span class="nv">$json</span><span class="p">);</span> <span class="nv">$jsonBody</span> <span class="o">=</span> <span class="nv">$response</span><span class="o">-></span><span class="na">json</span><span class="p">();</span> </pre></div> </div> <p>When a token is generated by the API, there are a few things returned:</p> <ul class="simple"> <li>a <a class="reference external" href="http://docs.rackspace.com/auth/api/v2.0/auth-client-devguide/content/Svc_Catalog_ovw.html">service catalog</a> outlining all of the services you can interact with, including their names, service types, and endpoint URLs. Which services make up your catalog, and how your catalog is structured, will depend on your service provider.</li> <li>details about your token, such as its ID, created and expiration date</li> <li>details about your user account</li> <li>details about your tenant</li> </ul> <div class="section" id="interacting-with-the-service-catalog"> <h3>Interacting with the service catalog<a class="headerlink" href="#interacting-with-the-service-catalog" title="Permalink to this headline">¶</a></h3> <p>Once you have the <tt class="docutils literal"><span class="pre">$jsonBody</span></tt>, you can construct a <tt class="docutils literal"><span class="pre">Catalog</span></tt> object for easier interaction:</p> <div class="highlight-php"><div class="highlight"><pre><span class="nv">$data</span> <span class="o">=</span> <span class="nv">$jsonBody</span><span class="o">-></span><span class="na">access</span><span class="o">-></span><span class="na">serviceCatalog</span><span class="p">;</span> <span class="nv">$catalog</span> <span class="o">=</span> <span class="nx">OpenCloud\Common\Service\Catalog</span><span class="o">::</span><span class="na">factory</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span> <span class="k">foreach</span> <span class="p">(</span><span class="nv">$catalog</span><span class="o">-></span><span class="na">getItems</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$service</span><span class="p">)</span> <span class="p">{</span> <span class="sd">/** @param $service OpenCloud\Common\Service\CatalogItem */</span> <span class="nb">printf</span><span class="p">(</span><span class="s2">"Catalog item: Name [%s] Type [%s]</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="nv">$service</span><span class="o">-></span><span class="na">getName</span><span class="p">(),</span> <span class="nv">$service</span><span class="o">-></span><span class="na">getType</span><span class="p">());</span> <span class="k">foreach</span> <span class="p">(</span><span class="nv">$service</span><span class="o">-></span><span class="na">getEndpoints</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$endpoint</span><span class="p">)</span> <span class="p">{</span> <span class="nb">printf</span><span class="p">(</span><span class="s2">" Endpoint provided: Region [%s] PublicURL [%s] PrivateURL [%s]</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="nv">$endpoint</span><span class="o">-></span><span class="na">getRegion</span><span class="p">(),</span> <span class="nv">$endpoint</span><span class="o">-></span><span class="na">getPublicUrl</span><span class="p">(),</span> <span class="nv">$endpoint</span><span class="o">-></span><span class="na">getPrivateUrl</span><span class="p">());</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div> </div> <div class="section" id="interacting-with-tokens"> <h3>Interacting with tokens<a class="headerlink" href="#interacting-with-tokens" title="Permalink to this headline">¶</a></h3> <div class="highlight-php"><div class="highlight"><pre><span class="nv">$data</span> <span class="o">=</span> <span class="nv">$jsonBody</span><span class="o">-></span><span class="na">access</span><span class="o">-></span><span class="na">token</span><span class="p">;</span> <span class="nv">$token</span> <span class="o">=</span> <span class="nv">$service</span><span class="o">-></span><span class="na">resource</span><span class="p">(</span><span class="s1">'Token'</span><span class="p">,</span> <span class="nv">$data</span><span class="p">);</span> <span class="nb">printf</span><span class="p">(</span><span class="s2">"Token ID: %s - Token expiry %s"</span><span class="p">,</span> <span class="nv">$token</span><span class="o">-></span><span class="na">getId</span><span class="p">(),</span> <span class="nv">$token</span><span class="o">-></span><span class="na">getExpires</span><span class="p">());</span> <span class="k">if</span> <span class="p">(</span><span class="nv">$token</span><span class="o">-></span><span class="na">hasExpired</span><span class="p">())</span> <span class="p">{</span> <span class="c1">// ...</span> <span class="p">}</span> </pre></div> </div> </div> <div class="section" id="interacting-with-users"> <h3>Interacting with users<a class="headerlink" href="#interacting-with-users" title="Permalink to this headline">¶</a></h3> <div class="highlight-php"><div class="highlight"><pre><span class="nv">$data</span> <span class="o">=</span> <span class="nv">$jsonBody</span><span class="o">-></span><span class="na">access</span><span class="o">-></span><span class="na">user</span><span class="p">;</span> <span class="nv">$user</span> <span class="o">=</span> <span class="nv">$service</span><span class="o">-></span><span class="na">resource</span><span class="p">(</span><span class="s1">'User'</span><span class="p">,</span> <span class="nv">$data</span><span class="p">);</span> </pre></div> </div> <p>To see which methods you can call on <tt class="docutils literal"><span class="pre">$user</span></tt> (which implements <tt class="docutils literal"><span class="pre">OpenCloud\Identity\Resource\User</span></tt>), see our <a class="reference internal" href="users.html"><em>user documentation</em></a> which accompanies this guide.</p> </div> <div class="section" id="interacting-with-tenants"> <h3>Interacting with tenants<a class="headerlink" href="#interacting-with-tenants" title="Permalink to this headline">¶</a></h3> <div class="highlight-php"><div class="highlight"><pre><span class="nv">$data</span> <span class="o">=</span> <span class="nv">$jsonBody</span><span class="o">-></span><span class="na">access</span><span class="o">-></span><span class="na">tenant</span><span class="p">;</span> <span class="nv">$tenant</span> <span class="o">=</span> <span class="nv">$service</span><span class="o">-></span><span class="na">resource</span><span class="p">(</span><span class="s1">'Tenant'</span><span class="p">,</span> <span class="nv">$data</span><span class="p">);</span> </pre></div> </div> <p>To see which methods you can call on <tt class="docutils literal"><span class="pre">$tenant</span></tt> (which implements <tt class="docutils literal"><span class="pre">OpenCloud\Identity\Resource\Tenant</span></tt>), see our <tt class="xref doc docutils literal"><span class="pre">user</span> <span class="pre">documentation</span></tt> which accompanies this guide.</p> </div> </div> <div class="section" id="revoke-token-destroy-session"> <h2>Revoke token (destroy session)<a class="headerlink" href="#revoke-token-destroy-session" title="Permalink to this headline">¶</a></h2> <div class="highlight-php"><div class="highlight"><pre><span class="nv">$service</span><span class="o">-></span><span class="na">revokeToken</span><span class="p">(</span><span class="s1">'{tokenId}'</span><span class="p">);</span> </pre></div> </div> </div> </div> </div> <footer> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <a href="users.html" class="btn btn-neutral float-right" title="Users"/>Next <span class="fa fa-arrow-circle-right"></span></a> <a href="index.html" class="btn btn-neutral" title="Identity v2"><span class="fa fa-arrow-circle-left"></span> Previous</a> </div> <hr/> <div role="contentinfo"> <p> © Copyright 2015, Jamie Hannaford, Shaunak Kashyap. </p> </div> <a href="https://github.com/snide/sphinx_rtd_theme">Sphinx theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a> </footer> </div> </div> </section> </div> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'../../', VERSION:'1.12.1', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../../_static/jquery.js"></script> <script type="text/javascript" src="../../_static/underscore.js"></script> <script type="text/javascript" src="../../_static/doctools.js"></script> <script type="text/javascript" src="../../_static/js/theme.js"></script> <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.StickyNav.enable(); }); </script> </body> </html>