blob: a9131efa5378bb0d691664c16467db4343e50b7b [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.appengine</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;appengine
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.appengine-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 appengine</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.appengine-pysrc.html">source&nbsp;code</a></span></p>
56<pre class="literalblock">
57Utilities for Google App Engine
58
59Utilities for making it easier to use OAuth 2.0 on Google App Engine.
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.appengine.InvalidClientSecretsError-class.html" class="summary-name">InvalidClientSecretsError</a><br />
89 The client_secrets.json file is malformed or missing required fields.
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">
Joe Gregorio1b425aa2012-08-24 12:04:34 -040096 <a href="oauth2client.appengine.InvalidXsrfTokenError-class.html" class="summary-name">InvalidXsrfTokenError</a><br />
97 The XSRF token is invalid or expired.
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.appengine.SiteXsrfSecretKey-class.html" class="summary-name">SiteXsrfSecretKey</a><br />
105 Storage for the sites XSRF secret key.
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">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400112 <a href="oauth2client.appengine.AppAssertionCredentials-class.html" class="summary-name">AppAssertionCredentials</a><br />
113 Credentials object for App Engine Assertion Grants
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.appengine.FlowProperty-class.html" class="summary-name">FlowProperty</a><br />
121 App Engine datastore Property for Flow.
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.appengine.CredentialsProperty-class.html" class="summary-name">CredentialsProperty</a><br />
129 App Engine datastore Property for Credentials.
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.appengine.StorageByKeyName-class.html" class="summary-name">StorageByKeyName</a><br />
137 Store and retrieve a single credential to and from
138the App Engine datastore.
139 </td>
140 </tr>
141<tr>
142 <td width="15%" align="right" valign="top" class="summary">
143 <span class="summary-type">&nbsp;</span>
144 </td><td class="summary">
145 <a href="oauth2client.appengine.CredentialsModel-class.html" class="summary-name">CredentialsModel</a><br />
146 Storage for OAuth 2.0 Credentials
147 </td>
148 </tr>
149<tr>
150 <td width="15%" align="right" valign="top" class="summary">
151 <span class="summary-type">&nbsp;</span>
152 </td><td class="summary">
153 <a href="oauth2client.appengine.OAuth2Decorator-class.html" class="summary-name">OAuth2Decorator</a><br />
154 Utility for making OAuth 2.0 easier.
155 </td>
156 </tr>
157<tr>
158 <td width="15%" align="right" valign="top" class="summary">
159 <span class="summary-type">&nbsp;</span>
160 </td><td class="summary">
161 <a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html" class="summary-name">OAuth2DecoratorFromClientSecrets</a><br />
162 An OAuth2Decorator that builds from a clientsecrets file.
163 </td>
164 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400165</table>
166<!-- ==================== FUNCTIONS ==================== -->
167<a name="section-Functions"></a>
168<table class="summary" border="1" cellpadding="3"
169 cellspacing="0" width="100%" bgcolor="white">
170<tr bgcolor="#70b0f0" class="table-header">
171 <td colspan="2" class="table-header">
172 <table border="0" cellpadding="0" cellspacing="0" width="100%">
173 <tr valign="top">
174 <td align="left"><span class="table-header">Functions</span></td>
175 <td align="right" valign="top"
176 ><span class="options">[<a href="#section-Functions"
177 class="privatelink" onclick="toggle_private();"
178 >hide private</a>]</span></td>
179 </tr>
180 </table>
181 </td>
182</tr>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400183<tr class="private">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400184 <td width="15%" align="right" valign="top" class="summary">
185 <span class="summary-type">&nbsp;</span>
186 </td><td class="summary">
187 <table width="100%" cellpadding="0" cellspacing="0" border="0">
188 <tr>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400189 <td><span class="summary-sig"><a name="_generate_new_xsrf_secret_key"></a><span class="summary-sig-name">_generate_new_xsrf_secret_key</span>()</span><br />
190 Returns a random XSRF secret key.</td>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400191 <td align="right" valign="top">
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400192 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#_generate_new_xsrf_secret_key">source&nbsp;code</a></span>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400193
194 </td>
195 </tr>
196 </table>
197
198 </td>
199 </tr>
200<tr>
201 <td width="15%" align="right" valign="top" class="summary">
202 <span class="summary-type">&nbsp;</span>
203 </td><td class="summary">
204 <table width="100%" cellpadding="0" cellspacing="0" border="0">
205 <tr>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400206 <td><span class="summary-sig"><a href="oauth2client.appengine-module.html#xsrf_secret_key" class="summary-sig-name">xsrf_secret_key</a>()</span><br />
207 Return the secret key for use for XSRF protection.</td>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400208 <td align="right" valign="top">
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400209 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#xsrf_secret_key">source&nbsp;code</a></span>
210
211 </td>
212 </tr>
213 </table>
214
215 </td>
216 </tr>
217<tr class="private">
218 <td width="15%" align="right" valign="top" class="summary">
219 <span class="summary-type">&nbsp;</span>
220 </td><td class="summary">
221 <table width="100%" cellpadding="0" cellspacing="0" border="0">
222 <tr>
223 <td><span class="summary-sig"><a href="oauth2client.appengine-module.html#_build_state_value" class="summary-sig-name" onclick="show_private();">_build_state_value</a>(<span class="summary-sig-arg">request_handler</span>,
224 <span class="summary-sig-arg">user</span>)</span><br />
225 Composes the value for the 'state' parameter.</td>
226 <td align="right" valign="top">
227 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#_build_state_value">source&nbsp;code</a></span>
228
229 </td>
230 </tr>
231 </table>
232
233 </td>
234 </tr>
235<tr class="private">
236 <td width="15%" align="right" valign="top" class="summary">
237 <span class="summary-type">&nbsp;</span>
238 </td><td class="summary">
239 <table width="100%" cellpadding="0" cellspacing="0" border="0">
240 <tr>
241 <td><span class="summary-sig"><a href="oauth2client.appengine-module.html#_parse_state_value" class="summary-sig-name" onclick="show_private();">_parse_state_value</a>(<span class="summary-sig-arg">state</span>,
242 <span class="summary-sig-arg">user</span>)</span><br />
243 Parse the value of the 'state' parameter.</td>
244 <td align="right" valign="top">
245 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#_parse_state_value">source&nbsp;code</a></span>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400246
247 </td>
248 </tr>
249 </table>
250
251 </td>
252 </tr>
253</table>
254<!-- ==================== VARIABLES ==================== -->
255<a name="section-Variables"></a>
256<table class="summary" border="1" cellpadding="3"
257 cellspacing="0" width="100%" bgcolor="white">
258<tr bgcolor="#70b0f0" class="table-header">
259 <td colspan="2" class="table-header">
260 <table border="0" cellpadding="0" cellspacing="0" width="100%">
261 <tr valign="top">
262 <td align="left"><span class="table-header">Variables</span></td>
263 <td align="right" valign="top"
264 ><span class="options">[<a href="#section-Variables"
265 class="privatelink" onclick="toggle_private();"
266 >hide private</a>]</span></td>
267 </tr>
268 </table>
269 </td>
270</tr>
271<tr>
272 <td width="15%" align="right" valign="top" class="summary">
273 <span class="summary-type">&nbsp;</span>
274 </td><td class="summary">
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400275 <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
276 </td>
277 </tr>
278<tr>
279 <td width="15%" align="right" valign="top" class="summary">
280 <span class="summary-type">&nbsp;</span>
281 </td><td class="summary">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400282 <a name="OAUTH2CLIENT_NAMESPACE"></a><span class="summary-name">OAUTH2CLIENT_NAMESPACE</span> = <code title="'oauth2client#ns'"><code class="variable-quote">'</code><code class="variable-string">oauth2client#ns</code><code class="variable-quote">'</code></code>
283 </td>
284 </tr>
285<tr>
286 <td width="15%" align="right" valign="top" class="summary">
287 <span class="summary-type">&nbsp;</span>
288 </td><td class="summary">
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400289 <a name="XSRF_MEMCACHE_ID"></a><span class="summary-name">XSRF_MEMCACHE_ID</span> = <code title="'xsrf_secret_key'"><code class="variable-quote">'</code><code class="variable-string">xsrf_secret_key</code><code class="variable-quote">'</code></code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400290 </td>
291 </tr>
292<tr>
293 <td width="15%" align="right" valign="top" class="summary">
294 <span class="summary-type">&nbsp;</span>
295 </td><td class="summary">
296 <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'oauth2client'"><code class="variable-quote">'</code><code class="variable-string">oauth2client</code><code class="variable-quote">'</code></code>
297 </td>
298 </tr>
299</table>
300<!-- ==================== FUNCTION DETAILS ==================== -->
301<a name="section-FunctionDetails"></a>
302<table class="details" border="1" cellpadding="3"
303 cellspacing="0" width="100%" bgcolor="white">
304<tr bgcolor="#70b0f0" class="table-header">
305 <td colspan="2" class="table-header">
306 <table border="0" cellpadding="0" cellspacing="0" width="100%">
307 <tr valign="top">
308 <td align="left"><span class="table-header">Function Details</span></td>
309 <td align="right" valign="top"
310 ><span class="options">[<a href="#section-FunctionDetails"
311 class="privatelink" onclick="toggle_private();"
312 >hide private</a>]</span></td>
313 </tr>
314 </table>
315 </td>
316</tr>
317</table>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400318<a name="xsrf_secret_key"></a>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400319<div>
320<table class="details" border="1" cellpadding="3"
321 cellspacing="0" width="100%" bgcolor="white">
322<tr><td>
323 <table width="100%" cellpadding="0" cellspacing="0" border="0">
324 <tr valign="top"><td>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400325 <h3 class="epydoc"><span class="sig"><span class="sig-name">xsrf_secret_key</span>()</span>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400326 </h3>
327 </td><td align="right" valign="top"
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400328 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#xsrf_secret_key">source&nbsp;code</a></span>&nbsp;
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400329 </td>
330 </tr></table>
331
332 <pre class="literalblock">
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400333Return the secret key for use for XSRF protection.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400334
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400335If the Site entity does not have a secret key, this method will also create
336one and persist it.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400337
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400338Returns:
339 The secret key.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400340
341</pre>
342 <dl class="fields">
343 </dl>
344</td></tr></table>
345</div>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400346<a name="_build_state_value"></a>
347<div class="private">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400348<table class="details" border="1" cellpadding="3"
349 cellspacing="0" width="100%" bgcolor="white">
350<tr><td>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400351 <table width="100%" cellpadding="0" cellspacing="0" border="0">
352 <tr valign="top"><td>
353 <h3 class="epydoc"><span class="sig"><span class="sig-name">_build_state_value</span>(<span class="sig-arg">request_handler</span>,
354 <span class="sig-arg">user</span>)</span>
355 </h3>
356 </td><td align="right" valign="top"
357 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#_build_state_value">source&nbsp;code</a></span>&nbsp;
358 </td>
359 </tr></table>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400360
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400361 <pre class="literalblock">
362Composes the value for the 'state' parameter.
363
364Packs the current request URI and an XSRF token into an opaque string that
365can be passed to the authentication server via the 'state' parameter.
366
367Args:
368 request_handler: webapp.RequestHandler, The request.
369 user: google.appengine.api.users.User, The current user.
370
371Returns:
372 The state value as a string.
373
374</pre>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400375 <dl class="fields">
376 </dl>
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400377</td></tr></table>
378</div>
379<a name="_parse_state_value"></a>
380<div class="private">
381<table class="details" border="1" cellpadding="3"
382 cellspacing="0" width="100%" bgcolor="white">
383<tr><td>
384 <table width="100%" cellpadding="0" cellspacing="0" border="0">
385 <tr valign="top"><td>
386 <h3 class="epydoc"><span class="sig"><span class="sig-name">_parse_state_value</span>(<span class="sig-arg">state</span>,
387 <span class="sig-arg">user</span>)</span>
388 </h3>
389 </td><td align="right" valign="top"
390 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#_parse_state_value">source&nbsp;code</a></span>&nbsp;
391 </td>
392 </tr></table>
393
394 <pre class="literalblock">
395Parse the value of the 'state' parameter.
396
397Parses the value and validates the XSRF token in the state parameter.
398
399Args:
400 state: string, The value of the state parameter.
401 user: google.appengine.api.users.User, The current user.
402
403Raises:
404 InvalidXsrfTokenError: if the XSRF token is invalid.
405
406Returns:
407 The redirect URI.
408
409</pre>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400410 <dl class="fields">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400411 </dl>
412</td></tr></table>
413</div>
414<br />
415<!-- ==================== NAVIGATION BAR ==================== -->
416<table class="navbar" border="0" width="100%" cellpadding="0"
417 bgcolor="#a0c0ff" cellspacing="0">
418 <tr valign="middle">
419
420 <!-- Tree link -->
421 <th>&nbsp;&nbsp;&nbsp;<a
422 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
423
424 <!-- Index link -->
425 <th>&nbsp;&nbsp;&nbsp;<a
426 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
427
428 <!-- Help link -->
429 <th>&nbsp;&nbsp;&nbsp;<a
430 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
431
432 <th class="navbar" width="100%"></th>
433 </tr>
434</table>
435<table border="0" cellpadding="0" cellspacing="0" width="100%%">
436 <tr>
437 <td align="left" class="footer">
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400438 Generated by Epydoc 3.0.1 on Fri Aug 24 11:02:00 2012
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400439 </td>
440 <td align="right" class="footer">
441 <a target="mainFrame" href="http://epydoc.sourceforge.net"
442 >http://epydoc.sourceforge.net</a>
443 </td>
444 </tr>
445</table>
446
447<script type="text/javascript">
448 <!--
449 // Private objects are initially displayed (because if
450 // javascript is turned off then we want them to be
451 // visible); but by default, we want to hide them. So hide
452 // them unless we have a cookie that says to show them.
453 checkCookie();
454 // -->
455</script>
456</body>
457</html>