blob: 2bae7fff3309f4432fb8e98504359dec27bc8920 [file] [log] [blame]
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -04001<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6 <title>oauth2client.client</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12 alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
16 <tr valign="middle">
17
18 <!-- Tree link -->
19 <th>&nbsp;&nbsp;&nbsp;<a
20 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
21
22 <!-- Index link -->
23 <th>&nbsp;&nbsp;&nbsp;<a
24 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
25
26 <!-- Help link -->
27 <th>&nbsp;&nbsp;&nbsp;<a
28 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
29
30 <th class="navbar" width="100%"></th>
31 </tr>
32</table>
33<table width="100%" cellpadding="0" cellspacing="0">
34 <tr valign="top">
35 <td width="100%">
36 <span class="breadcrumbs">
37 <a href="oauth2client-module.html">Package&nbsp;oauth2client</a> ::
38 Module&nbsp;client
39 </span>
40 </td>
41 <td>
42 <table cellpadding="0" cellspacing="0">
43 <!-- hide/show private -->
44 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
45 onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
46 <tr><td align="right"><span class="options"
47 >[<a href="frames.html" target="_top">frames</a
48 >]&nbsp;|&nbsp;<a href="oauth2client.client-module.html"
49 target="_top">no&nbsp;frames</a>]</span></td></tr>
50 </table>
51 </td>
52 </tr>
53</table>
54<!-- ==================== MODULE DESCRIPTION ==================== -->
55<h1 class="epydoc">Module client</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.client-pysrc.html">source&nbsp;code</a></span></p>
56<pre class="literalblock">
57An OAuth 2.0 client.
58
59Tools for interacting with OAuth 2.0 protected resources.
60
61</pre>
62
63<hr />
64<div class="fields"> <p><strong>Author:</strong>
65 jcgregorio@google.com (Joe Gregorio)
66 </p>
67</div><!-- ==================== CLASSES ==================== -->
68<a name="section-Classes"></a>
69<table class="summary" border="1" cellpadding="3"
70 cellspacing="0" width="100%" bgcolor="white">
71<tr bgcolor="#70b0f0" class="table-header">
72 <td colspan="2" class="table-header">
73 <table border="0" cellpadding="0" cellspacing="0" width="100%">
74 <tr valign="top">
75 <td align="left"><span class="table-header">Classes</span></td>
76 <td align="right" valign="top"
77 ><span class="options">[<a href="#section-Classes"
78 class="privatelink" onclick="toggle_private();"
79 >hide private</a>]</span></td>
80 </tr>
81 </table>
82 </td>
83</tr>
84<tr>
85 <td width="15%" align="right" valign="top" class="summary">
86 <span class="summary-type">&nbsp;</span>
87 </td><td class="summary">
88 <a href="oauth2client.client.Error-class.html" class="summary-name">Error</a><br />
89 Base error for this module.
90 </td>
91 </tr>
92<tr>
93 <td width="15%" align="right" valign="top" class="summary">
94 <span class="summary-type">&nbsp;</span>
95 </td><td class="summary">
96 <a href="oauth2client.client.FlowExchangeError-class.html" class="summary-name">FlowExchangeError</a><br />
97 Error trying to exchange an authorization grant for an access token.
98 </td>
99 </tr>
100<tr>
101 <td width="15%" align="right" valign="top" class="summary">
102 <span class="summary-type">&nbsp;</span>
103 </td><td class="summary">
104 <a href="oauth2client.client.AccessTokenRefreshError-class.html" class="summary-name">AccessTokenRefreshError</a><br />
105 Error trying to refresh an expired access token.
106 </td>
107 </tr>
108<tr>
109 <td width="15%" align="right" valign="top" class="summary">
110 <span class="summary-type">&nbsp;</span>
111 </td><td class="summary">
112 <a href="oauth2client.client.UnknownClientSecretsFlowError-class.html" class="summary-name">UnknownClientSecretsFlowError</a><br />
113 The client secrets file called for an unknown type of OAuth 2.0 flow.
114 </td>
115 </tr>
116<tr>
117 <td width="15%" align="right" valign="top" class="summary">
118 <span class="summary-type">&nbsp;</span>
119 </td><td class="summary">
120 <a href="oauth2client.client.AccessTokenCredentialsError-class.html" class="summary-name">AccessTokenCredentialsError</a><br />
121 Having only the access_token means no refresh is possible.
122 </td>
123 </tr>
124<tr>
125 <td width="15%" align="right" valign="top" class="summary">
126 <span class="summary-type">&nbsp;</span>
127 </td><td class="summary">
128 <a href="oauth2client.client.VerifyJwtTokenError-class.html" class="summary-name">VerifyJwtTokenError</a><br />
129 Could on retrieve certificates for validation.
130 </td>
131 </tr>
132<tr>
133 <td width="15%" align="right" valign="top" class="summary">
134 <span class="summary-type">&nbsp;</span>
135 </td><td class="summary">
136 <a href="oauth2client.client.MemoryCache-class.html" class="summary-name">MemoryCache</a><br />
137 httplib2 Cache implementation which only caches locally.
138 </td>
139 </tr>
140<tr>
141 <td width="15%" align="right" valign="top" class="summary">
142 <span class="summary-type">&nbsp;</span>
143 </td><td class="summary">
144 <a href="oauth2client.client.Credentials-class.html" class="summary-name">Credentials</a><br />
145 Base class for all Credentials objects.
146 </td>
147 </tr>
148<tr>
149 <td width="15%" align="right" valign="top" class="summary">
150 <span class="summary-type">&nbsp;</span>
151 </td><td class="summary">
152 <a href="oauth2client.client.Flow-class.html" class="summary-name">Flow</a><br />
153 Base class for all Flow objects.
154 </td>
155 </tr>
156<tr>
157 <td width="15%" align="right" valign="top" class="summary">
158 <span class="summary-type">&nbsp;</span>
159 </td><td class="summary">
160 <a href="oauth2client.client.Storage-class.html" class="summary-name">Storage</a><br />
161 Base class for all Storage objects.
162 </td>
163 </tr>
164<tr>
165 <td width="15%" align="right" valign="top" class="summary">
166 <span class="summary-type">&nbsp;</span>
167 </td><td class="summary">
168 <a href="oauth2client.client.OAuth2Credentials-class.html" class="summary-name">OAuth2Credentials</a><br />
169 Credentials object for OAuth 2.0.
170 </td>
171 </tr>
172<tr>
173 <td width="15%" align="right" valign="top" class="summary">
174 <span class="summary-type">&nbsp;</span>
175 </td><td class="summary">
176 <a href="oauth2client.client.AccessTokenCredentials-class.html" class="summary-name">AccessTokenCredentials</a><br />
177 Credentials object for OAuth 2.0.
178 </td>
179 </tr>
180<tr>
181 <td width="15%" align="right" valign="top" class="summary">
182 <span class="summary-type">&nbsp;</span>
183 </td><td class="summary">
184 <a href="oauth2client.client.AssertionCredentials-class.html" class="summary-name">AssertionCredentials</a><br />
185 Abstract Credentials object used for OAuth 2.0 assertion grants.
186 </td>
187 </tr>
188<tr>
189 <td width="15%" align="right" valign="top" class="summary">
190 <span class="summary-type">&nbsp;</span>
191 </td><td class="summary">
192 <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html" class="summary-name">SignedJwtAssertionCredentials</a><br />
193 Credentials object used for OAuth 2.0 Signed JWT assertion grants.
194 </td>
195 </tr>
196<tr>
197 <td width="15%" align="right" valign="top" class="summary">
198 <span class="summary-type">&nbsp;</span>
199 </td><td class="summary">
200 <a href="oauth2client.client.OAuth2WebServerFlow-class.html" class="summary-name">OAuth2WebServerFlow</a><br />
201 Does the Web Server Flow for OAuth 2.0.
202 </td>
203 </tr>
204</table>
205<!-- ==================== FUNCTIONS ==================== -->
206<a name="section-Functions"></a>
207<table class="summary" border="1" cellpadding="3"
208 cellspacing="0" width="100%" bgcolor="white">
209<tr bgcolor="#70b0f0" class="table-header">
210 <td colspan="2" class="table-header">
211 <table border="0" cellpadding="0" cellspacing="0" width="100%">
212 <tr valign="top">
213 <td align="left"><span class="table-header">Functions</span></td>
214 <td align="right" valign="top"
215 ><span class="options">[<a href="#section-Functions"
216 class="privatelink" onclick="toggle_private();"
217 >hide private</a>]</span></td>
218 </tr>
219 </table>
220 </td>
221</tr>
222<tr class="private">
223 <td width="15%" align="right" valign="top" class="summary">
224 <span class="summary-type">&nbsp;</span>
225 </td><td class="summary">
226 <table width="100%" cellpadding="0" cellspacing="0" border="0">
227 <tr>
228 <td><span class="summary-sig"><a name="_abstract"></a><span class="summary-sig-name">_abstract</span>()</span></td>
229 <td align="right" valign="top">
230 <span class="codelink"><a href="oauth2client.client-pysrc.html#_abstract">source&nbsp;code</a></span>
231
232 </td>
233 </tr>
234 </table>
235
236 </td>
237 </tr>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400238<tr>
239 <td width="15%" align="right" valign="top" class="summary">
240 <span class="summary-type">&nbsp;</span>
241 </td><td class="summary">
242 <table width="100%" cellpadding="0" cellspacing="0" border="0">
243 <tr>
244 <td><span class="summary-sig"><a href="oauth2client.client-module.html#verify_id_token" class="summary-sig-name">verify_id_token</a>(<span class="summary-sig-arg">id_token</span>,
245 <span class="summary-sig-arg">audience</span>,
246 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
247 <span class="summary-sig-arg">cert_uri</span>=<span class="summary-sig-default">ID_TOKEN_VERIFICATON_CERTS</span>)</span><br />
248 Verifies a signed JWT id_token.</td>
249 <td align="right" valign="top">
250 <span class="codelink"><a href="oauth2client.client-pysrc.html#verify_id_token">source&nbsp;code</a></span>
251
252 </td>
253 </tr>
254 </table>
255
256 </td>
257 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400258<tr class="private">
259 <td width="15%" align="right" valign="top" class="summary">
260 <span class="summary-type">&nbsp;</span>
261 </td><td class="summary">
262 <table width="100%" cellpadding="0" cellspacing="0" border="0">
263 <tr>
264 <td><span class="summary-sig"><a name="_urlsafe_b64decode"></a><span class="summary-sig-name">_urlsafe_b64decode</span>(<span class="summary-sig-arg">b64string</span>)</span></td>
265 <td align="right" valign="top">
266 <span class="codelink"><a href="oauth2client.client-pysrc.html#_urlsafe_b64decode">source&nbsp;code</a></span>
267
268 </td>
269 </tr>
270 </table>
271
272 </td>
273 </tr>
274<tr class="private">
275 <td width="15%" align="right" valign="top" class="summary">
276 <span class="summary-type">&nbsp;</span>
277 </td><td class="summary">
278 <table width="100%" cellpadding="0" cellspacing="0" border="0">
279 <tr>
280 <td><span class="summary-sig"><a href="oauth2client.client-module.html#_extract_id_token" class="summary-sig-name" onclick="show_private();">_extract_id_token</a>(<span class="summary-sig-arg">id_token</span>)</span><br />
281 Extract the JSON payload from a JWT.</td>
282 <td align="right" valign="top">
283 <span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>
284
285 </td>
286 </tr>
287 </table>
288
289 </td>
290 </tr>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400291<tr class="private">
292 <td width="15%" align="right" valign="top" class="summary">
293 <span class="summary-type">&nbsp;</span>
294 </td><td class="summary">
295 <table width="100%" cellpadding="0" cellspacing="0" border="0">
296 <tr>
297 <td><span class="summary-sig"><a href="oauth2client.client-module.html#_parse_exchange_token_response" class="summary-sig-name" onclick="show_private();">_parse_exchange_token_response</a>(<span class="summary-sig-arg">content</span>)</span><br />
298 Parses response of an exchange token request.</td>
299 <td align="right" valign="top">
300 <span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>
301
302 </td>
303 </tr>
304 </table>
305
306 </td>
307 </tr>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400308<tr>
309 <td width="15%" align="right" valign="top" class="summary">
310 <span class="summary-type">&nbsp;</span>
311 </td><td class="summary">
312 <table width="100%" cellpadding="0" cellspacing="0" border="0">
313 <tr>
314 <td><span class="summary-sig"><a href="oauth2client.client-module.html#credentials_from_code" class="summary-sig-name">credentials_from_code</a>(<span class="summary-sig-arg">client_id</span>,
315 <span class="summary-sig-arg">client_secret</span>,
316 <span class="summary-sig-arg">scope</span>,
317 <span class="summary-sig-arg">code</span>,
318 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default">'postmessage'</span>,
319 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
320 <span class="summary-sig-arg">user_agent</span>=<span class="summary-sig-default">None</span>,
321 <span class="summary-sig-arg">token_uri</span>=<span class="summary-sig-default">'https://accounts.google.com/o/oauth2/token'</span>)</span><br />
322 Exchanges an authorization code for an OAuth2Credentials object.</td>
323 <td align="right" valign="top">
324 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>
325
326 </td>
327 </tr>
328 </table>
329
330 </td>
331 </tr>
332<tr>
333 <td width="15%" align="right" valign="top" class="summary">
334 <span class="summary-type">&nbsp;</span>
335 </td><td class="summary">
336 <table width="100%" cellpadding="0" cellspacing="0" border="0">
337 <tr>
338 <td><span class="summary-sig"><a href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code" class="summary-sig-name">credentials_from_clientsecrets_and_code</a>(<span class="summary-sig-arg">filename</span>,
339 <span class="summary-sig-arg">scope</span>,
340 <span class="summary-sig-arg">code</span>,
341 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
342 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default">'postmessage'</span>,
343 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
344 <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
345 Returns OAuth2Credentials from a clientsecrets file and an auth code.</td>
346 <td align="right" valign="top">
347 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>
348
349 </td>
350 </tr>
351 </table>
352
353 </td>
354 </tr>
355<tr>
356 <td width="15%" align="right" valign="top" class="summary">
357 <span class="summary-type">&nbsp;</span>
358 </td><td class="summary">
359 <table width="100%" cellpadding="0" cellspacing="0" border="0">
360 <tr>
361 <td><span class="summary-sig"><a href="oauth2client.client-module.html#flow_from_clientsecrets" class="summary-sig-name">flow_from_clientsecrets</a>(<span class="summary-sig-arg">filename</span>,
362 <span class="summary-sig-arg">scope</span>,
363 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default">None</span>,
364 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
365 <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
366 Create a Flow from a clientsecrets file.</td>
367 <td align="right" valign="top">
368 <span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>
369
370 </td>
371 </tr>
372 </table>
373
374 </td>
375 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400376</table>
377<!-- ==================== VARIABLES ==================== -->
378<a name="section-Variables"></a>
379<table class="summary" border="1" cellpadding="3"
380 cellspacing="0" width="100%" bgcolor="white">
381<tr bgcolor="#70b0f0" class="table-header">
382 <td colspan="2" class="table-header">
383 <table border="0" cellpadding="0" cellspacing="0" width="100%">
384 <tr valign="top">
385 <td align="left"><span class="table-header">Variables</span></td>
386 <td align="right" valign="top"
387 ><span class="options">[<a href="#section-Variables"
388 class="privatelink" onclick="toggle_private();"
389 >hide private</a>]</span></td>
390 </tr>
391 </table>
392 </td>
393</tr>
394<tr>
395 <td width="15%" align="right" valign="top" class="summary">
396 <span class="summary-type">&nbsp;</span>
397 </td><td class="summary">
398 <a name="HAS_OPENSSL"></a><span class="summary-name">HAS_OPENSSL</span> = <code title="True">True</code>
399 </td>
400 </tr>
401<tr>
402 <td width="15%" align="right" valign="top" class="summary">
403 <span class="summary-type">&nbsp;</span>
404 </td><td class="summary">
405 <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
406 </td>
407 </tr>
408<tr>
409 <td width="15%" align="right" valign="top" class="summary">
410 <span class="summary-type">&nbsp;</span>
411 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400412 <a name="EXPIRY_FORMAT"></a><span class="summary-name">EXPIRY_FORMAT</span> = <code title="'%Y-%m-%dT%H:%M:%SZ'">'%Y-%m-%dT%H:%M:%SZ'</code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400413 </td>
414 </tr>
415<tr>
416 <td width="15%" align="right" valign="top" class="summary">
417 <span class="summary-type">&nbsp;</span>
418 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400419 <a href="oauth2client.client-module.html#ID_TOKEN_VERIFICATON_CERTS" class="summary-name">ID_TOKEN_VERIFICATON_CERTS</a> = <code title="'https://www.googleapis.com/oauth2/v1/certs'">'https://www.googleapis.com/oauth<code class="variable-ellipsis">...</code></code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400420 </td>
421 </tr>
422<tr>
423 <td width="15%" align="right" valign="top" class="summary">
424 <span class="summary-type">&nbsp;</span>
425 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400426 <a name="OOB_CALLBACK_URN"></a><span class="summary-name">OOB_CALLBACK_URN</span> = <code title="'urn:ietf:wg:oauth:2.0:oob'">'urn:ietf:wg:oauth:2.0:oob'</code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400427 </td>
428 </tr>
429<tr class="private">
430 <td width="15%" align="right" valign="top" class="summary">
431 <span class="summary-type">&nbsp;</span>
432 </td><td class="summary">
433 <a name="_cached_http"></a><span class="summary-name">_cached_http</span> = <code title="httplib2.Http(MemoryCache())">httplib2.Http(MemoryCache())</code>
434 </td>
435 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400436</table>
437<!-- ==================== FUNCTION DETAILS ==================== -->
438<a name="section-FunctionDetails"></a>
439<table class="details" border="1" cellpadding="3"
440 cellspacing="0" width="100%" bgcolor="white">
441<tr bgcolor="#70b0f0" class="table-header">
442 <td colspan="2" class="table-header">
443 <table border="0" cellpadding="0" cellspacing="0" width="100%">
444 <tr valign="top">
445 <td align="left"><span class="table-header">Function Details</span></td>
446 <td align="right" valign="top"
447 ><span class="options">[<a href="#section-FunctionDetails"
448 class="privatelink" onclick="toggle_private();"
449 >hide private</a>]</span></td>
450 </tr>
451 </table>
452 </td>
453</tr>
454</table>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400455<a name="verify_id_token"></a>
456<div>
457<table class="details" border="1" cellpadding="3"
458 cellspacing="0" width="100%" bgcolor="white">
459<tr><td>
460 <table width="100%" cellpadding="0" cellspacing="0" border="0">
461 <tr valign="top"><td>
462 <h3 class="epydoc"><span class="sig"><span class="sig-name">verify_id_token</span>(<span class="sig-arg">id_token</span>,
463 <span class="sig-arg">audience</span>,
464 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
465 <span class="sig-arg">cert_uri</span>=<span class="sig-default">ID_TOKEN_VERIFICATON_CERTS</span>)</span>
466 </h3>
467 </td><td align="right" valign="top"
468 ><span class="codelink"><a href="oauth2client.client-pysrc.html#verify_id_token">source&nbsp;code</a></span>&nbsp;
469 </td>
470 </tr></table>
471
472 <pre class="literalblock">
473Verifies a signed JWT id_token.
474
475This function requires PyOpenSSL and because of that it does not work on
476App Engine. For App Engine you may consider using AppAssertionCredentials.
477
478Args:
479 id_token: string, A Signed JWT.
480 audience: string, The audience 'aud' that the token should be for.
481 http: httplib2.Http, instance to use to make the HTTP request. Callers
482 should supply an instance that has caching enabled.
483 cert_uri: string, URI of the certificates in JSON format to
484 verify the JWT against.
485
486Returns:
487 The deserialized JSON in the JWT.
488
489Raises:
490 oauth2client.crypt.AppIdentityError if the JWT fails to verify.
491
492</pre>
493 <dl class="fields">
494 <dt>Decorators:</dt>
495 <dd><ul class="nomargin-top">
496 <li><code>@util.positional(2)</code></li>
497 </ul></dd>
498 </dl>
499</td></tr></table>
500</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400501<a name="_extract_id_token"></a>
502<div class="private">
503<table class="details" border="1" cellpadding="3"
504 cellspacing="0" width="100%" bgcolor="white">
505<tr><td>
506 <table width="100%" cellpadding="0" cellspacing="0" border="0">
507 <tr valign="top"><td>
508 <h3 class="epydoc"><span class="sig"><span class="sig-name">_extract_id_token</span>(<span class="sig-arg">id_token</span>)</span>
509 </h3>
510 </td><td align="right" valign="top"
511 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>&nbsp;
512 </td>
513 </tr></table>
514
515 <pre class="literalblock">
516Extract the JSON payload from a JWT.
517
518Does the extraction w/o checking the signature.
519
520Args:
521 id_token: string, OAuth 2.0 id_token.
522
523Returns:
524 object, The deserialized JSON payload.
525
526</pre>
527 <dl class="fields">
528 </dl>
529</td></tr></table>
530</div>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400531<a name="_parse_exchange_token_response"></a>
532<div class="private">
533<table class="details" border="1" cellpadding="3"
534 cellspacing="0" width="100%" bgcolor="white">
535<tr><td>
536 <table width="100%" cellpadding="0" cellspacing="0" border="0">
537 <tr valign="top"><td>
538 <h3 class="epydoc"><span class="sig"><span class="sig-name">_parse_exchange_token_response</span>(<span class="sig-arg">content</span>)</span>
539 </h3>
540 </td><td align="right" valign="top"
541 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>&nbsp;
542 </td>
543 </tr></table>
544
545 <pre class="literalblock">
546Parses response of an exchange token request.
547
548Most providers return JSON but some (e.g. Facebook) return a
549url-encoded string.
550
551Args:
552 content: The body of a response
553
554Returns:
555 Content as a dictionary object. Note that the dict could be empty,
556 i.e. {}. That basically indicates a failure.
557
558</pre>
559 <dl class="fields">
560 </dl>
561</td></tr></table>
562</div>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400563<a name="credentials_from_code"></a>
564<div>
565<table class="details" border="1" cellpadding="3"
566 cellspacing="0" width="100%" bgcolor="white">
567<tr><td>
568 <table width="100%" cellpadding="0" cellspacing="0" border="0">
569 <tr valign="top"><td>
570 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_code</span>(<span class="sig-arg">client_id</span>,
571 <span class="sig-arg">client_secret</span>,
572 <span class="sig-arg">scope</span>,
573 <span class="sig-arg">code</span>,
574 <span class="sig-arg">redirect_uri</span>=<span class="sig-default">'postmessage'</span>,
575 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
576 <span class="sig-arg">user_agent</span>=<span class="sig-default">None</span>,
577 <span class="sig-arg">token_uri</span>=<span class="sig-default">'https://accounts.google.com/o/oauth2/token'</span>)</span>
578 </h3>
579 </td><td align="right" valign="top"
580 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>&nbsp;
581 </td>
582 </tr></table>
583
584 <pre class="literalblock">
585Exchanges an authorization code for an OAuth2Credentials object.
586
587Args:
588 client_id: string, client identifier.
589 client_secret: string, client secret.
590 scope: string or list of strings, scope(s) to request.
591 code: string, An authroization code, most likely passed down from
592 the client
593 redirect_uri: string, this is generally set to 'postmessage' to match the
594 redirect_uri that the client specified
595 http: httplib2.Http, optional http instance to use to do the fetch
596 token_uri: string, URI for token endpoint. For convenience
597 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
598Returns:
599 An OAuth2Credentials object.
600
601Raises:
602 FlowExchangeError if the authorization code cannot be exchanged for an
603 access token
604
605</pre>
606 <dl class="fields">
607 <dt>Decorators:</dt>
608 <dd><ul class="nomargin-top">
609 <li><code>@util.positional(4)</code></li>
610 </ul></dd>
611 </dl>
612</td></tr></table>
613</div>
614<a name="credentials_from_clientsecrets_and_code"></a>
615<div>
616<table class="details" border="1" cellpadding="3"
617 cellspacing="0" width="100%" bgcolor="white">
618<tr><td>
619 <table width="100%" cellpadding="0" cellspacing="0" border="0">
620 <tr valign="top"><td>
621 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_clientsecrets_and_code</span>(<span class="sig-arg">filename</span>,
622 <span class="sig-arg">scope</span>,
623 <span class="sig-arg">code</span>,
624 <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
625 <span class="sig-arg">redirect_uri</span>=<span class="sig-default">'postmessage'</span>,
626 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
627 <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
628 </h3>
629 </td><td align="right" valign="top"
630 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>&nbsp;
631 </td>
632 </tr></table>
633
634 <pre class="literalblock">
635Returns OAuth2Credentials from a clientsecrets file and an auth code.
636
637Will create the right kind of Flow based on the contents of the clientsecrets
638file or will raise InvalidClientSecretsError for unknown types of Flows.
639
640Args:
641 filename: string, File name of clientsecrets.
642 scope: string or list of strings, scope(s) to request.
643 code: string, An authorization code, most likely passed down from
644 the client
645 message: string, A friendly string to display to the user if the
646 clientsecrets file is missing or invalid. If message is provided then
647 sys.exit will be called in the case of an error. If message in not
648 provided then clientsecrets.InvalidClientSecretsError will be raised.
649 redirect_uri: string, this is generally set to 'postmessage' to match the
650 redirect_uri that the client specified
651 http: httplib2.Http, optional http instance to use to do the fetch
652 cache: An optional cache service client that implements get() and set()
653 methods. See clientsecrets.loadfile() for details.
654
655Returns:
656 An OAuth2Credentials object.
657
658Raises:
659 FlowExchangeError if the authorization code cannot be exchanged for an
660 access token
661 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
662 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
663 invalid.
664
665</pre>
666 <dl class="fields">
667 <dt>Decorators:</dt>
668 <dd><ul class="nomargin-top">
669 <li><code>@util.positional(3)</code></li>
670 </ul></dd>
671 </dl>
672</td></tr></table>
673</div>
674<a name="flow_from_clientsecrets"></a>
675<div>
676<table class="details" border="1" cellpadding="3"
677 cellspacing="0" width="100%" bgcolor="white">
678<tr><td>
679 <table width="100%" cellpadding="0" cellspacing="0" border="0">
680 <tr valign="top"><td>
681 <h3 class="epydoc"><span class="sig"><span class="sig-name">flow_from_clientsecrets</span>(<span class="sig-arg">filename</span>,
682 <span class="sig-arg">scope</span>,
683 <span class="sig-arg">redirect_uri</span>=<span class="sig-default">None</span>,
684 <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
685 <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
686 </h3>
687 </td><td align="right" valign="top"
688 ><span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>&nbsp;
689 </td>
690 </tr></table>
691
692 <pre class="literalblock">
693Create a Flow from a clientsecrets file.
694
695Will create the right kind of Flow based on the contents of the clientsecrets
696file or will raise InvalidClientSecretsError for unknown types of Flows.
697
698Args:
699 filename: string, File name of client secrets.
700 scope: string or list of strings, scope(s) to request.
701 redirect_uri: string, Either the string 'urn:ietf:wg:oauth:2.0:oob' for
702 a non-web-based application, or a URI that handles the callback from
703 the authorization server.
704 message: string, A friendly string to display to the user if the
705 clientsecrets file is missing or invalid. If message is provided then
706 sys.exit will be called in the case of an error. If message in not
707 provided then clientsecrets.InvalidClientSecretsError will be raised.
708 cache: An optional cache service client that implements get() and set()
709 methods. See clientsecrets.loadfile() for details.
710
711Returns:
712 A Flow object.
713
714Raises:
715 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
716 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
717 invalid.
718
719</pre>
720 <dl class="fields">
721 <dt>Decorators:</dt>
722 <dd><ul class="nomargin-top">
723 <li><code>@util.positional(2)</code></li>
724 </ul></dd>
725 </dl>
726</td></tr></table>
727</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400728<br />
729<!-- ==================== VARIABLES DETAILS ==================== -->
730<a name="section-VariablesDetails"></a>
731<table class="details" border="1" cellpadding="3"
732 cellspacing="0" width="100%" bgcolor="white">
733<tr bgcolor="#70b0f0" class="table-header">
734 <td colspan="2" class="table-header">
735 <table border="0" cellpadding="0" cellspacing="0" width="100%">
736 <tr valign="top">
737 <td align="left"><span class="table-header">Variables Details</span></td>
738 <td align="right" valign="top"
739 ><span class="options">[<a href="#section-VariablesDetails"
740 class="privatelink" onclick="toggle_private();"
741 >hide private</a>]</span></td>
742 </tr>
743 </table>
744 </td>
745</tr>
746</table>
747<a name="ID_TOKEN_VERIFICATON_CERTS"></a>
748<div>
749<table class="details" border="1" cellpadding="3"
750 cellspacing="0" width="100%" bgcolor="white">
751<tr><td>
752 <h3 class="epydoc">ID_TOKEN_VERIFICATON_CERTS</h3>
753
754 <dl class="fields">
755 </dl>
756 <dl class="fields">
757 <dt>Value:</dt>
758 <dd><table><tr><td><pre class="variable">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400759'https://www.googleapis.com/oauth2/v1/certs'
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400760</pre></td></tr></table>
761</dd>
762 </dl>
763</td></tr></table>
764</div>
765<br />
766<!-- ==================== NAVIGATION BAR ==================== -->
767<table class="navbar" border="0" width="100%" cellpadding="0"
768 bgcolor="#a0c0ff" cellspacing="0">
769 <tr valign="middle">
770
771 <!-- Tree link -->
772 <th>&nbsp;&nbsp;&nbsp;<a
773 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
774
775 <!-- Index link -->
776 <th>&nbsp;&nbsp;&nbsp;<a
777 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
778
779 <!-- Help link -->
780 <th>&nbsp;&nbsp;&nbsp;<a
781 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
782
783 <th class="navbar" width="100%"></th>
784 </tr>
785</table>
786<table border="0" cellpadding="0" cellspacing="0" width="100%%">
787 <tr>
788 <td align="left" class="footer">
Joe Gregoriob2cdd802012-11-06 12:08:06 -0500789 Generated by Epydoc 3.0.1 on Tue Nov 6 12:07:10 2012
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400790 </td>
791 <td align="right" class="footer">
792 <a target="mainFrame" href="http://epydoc.sourceforge.net"
793 >http://epydoc.sourceforge.net</a>
794 </td>
795 </tr>
796</table>
797
798<script type="text/javascript">
799 <!--
800 // Private objects are initially displayed (because if
801 // javascript is turned off then we want them to be
802 // visible); but by default, we want to hide them. So hide
803 // them unless we have a cookie that says to show them.
804 checkCookie();
805 // -->
806</script>
807</body>
808</html>