Guest User

erro auth

a guest
Jan 19th, 2018
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 90.80 KB | None | 0 0
  1.  
  2. <!DOCTYPE html>
  3. <!-- saved from url=(0173)http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f -->
  4. <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.  
  6. <meta name="robots" content="NONE,NOARCHIVE">
  7. <title>AttributeError at /fenixAuthHandler/</title>
  8. <style type="text/css">
  9. html * { padding:0; margin:0; }
  10. body * { padding:10px 20px; }
  11. body * * { padding:0; }
  12. body { font:small sans-serif; }
  13. body>div { border-bottom:1px solid #ddd; }
  14. h1 { font-weight:normal; }
  15. h2 { margin-bottom:.8em; }
  16. h2 span { font-size:80%; color:#666; font-weight:normal; }
  17. h3 { margin:1em 0 .5em 0; }
  18. h4 { margin:0 0 .5em 0; font-weight: normal; }
  19. code, pre { font-size: 100%; white-space: pre-wrap; }
  20. table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
  21. tbody td, tbody th { vertical-align:top; padding:2px 3px; }
  22. thead th {
  23. padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
  24. font-weight:normal; font-size:11px; border:1px solid #ddd;
  25. }
  26. tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
  27. table.vars { margin:5px 0 2px 40px; }
  28. table.vars td, table.req td { font-family:monospace; }
  29. table td.code { width:100%; }
  30. table td.code pre { overflow:hidden; }
  31. table.source th { color:#666; }
  32. table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
  33. ul.traceback { list-style-type:none; color: #222; }
  34. ul.traceback li.frame { padding-bottom:1em; color:#666; }
  35. ul.traceback li.user { background-color:#e0e0e0; color:#000 }
  36. div.context { padding:10px 0; overflow:hidden; }
  37. div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
  38. div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }
  39. div.context ol li pre { display:inline; }
  40. div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }
  41. div.context ol.context-line li span { position:absolute; right:32px; }
  42. .user div.context ol.context-line li { background-color:#bbb; color:#000; }
  43. .user div.context ol li { color:#666; }
  44. div.commands { margin-left: 40px; }
  45. div.commands a { color:#555; text-decoration:none; }
  46. .user div.commands a { color: black; }
  47. #summary { background: #ffc; }
  48. #summary h2 { font-weight: normal; color: #666; }
  49. #explanation { background:#eee; }
  50. #template, #template-not-exist { background:#f6f6f6; }
  51. #template-not-exist ul { margin: 0 0 10px 20px; }
  52. #template-not-exist .postmortem-section { margin-bottom: 3px; }
  53. #unicode-hint { background:#eee; }
  54. #traceback { background:#eee; }
  55. #requestinfo { background:#f6f6f6; padding-left:120px; }
  56. #summary table { border:none; background:transparent; }
  57. #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
  58. #requestinfo h3 { margin-bottom:-1em; }
  59. .error { background: #ffc; }
  60. .specific { color:#cc3300; font-weight:bold; }
  61. h2 span.commands { font-size:.7em;}
  62. span.commands a:link {color:#5E5694;}
  63. pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
  64. .append-bottom { margin-bottom: 10px; }
  65. </style>
  66.  
  67. <script type="text/javascript">
  68. //<!--
  69. function getElementsByClassName(oElm, strTagName, strClassName){
  70. // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
  71. var arrElements = (strTagName == "*" && document.all)? document.all :
  72. oElm.getElementsByTagName(strTagName);
  73. var arrReturnElements = new Array();
  74. strClassName = strClassName.replace(/\-/g, "\\-");
  75. var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  76. var oElement;
  77. for(var i=0; i<arrElements.length; i++){
  78. oElement = arrElements[i];
  79. if(oRegExp.test(oElement.className)){
  80. arrReturnElements.push(oElement);
  81. }
  82. }
  83. return (arrReturnElements)
  84. }
  85. function hideAll(elems) {
  86. for (var e = 0; e < elems.length; e++) {
  87. elems[e].style.display = 'none';
  88. }
  89. }
  90. window.onload = function() {
  91. hideAll(getElementsByClassName(document, 'table', 'vars'));
  92. hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
  93. hideAll(getElementsByClassName(document, 'ol', 'post-context'));
  94. hideAll(getElementsByClassName(document, 'div', 'pastebin'));
  95. }
  96. function toggle() {
  97. for (var i = 0; i < arguments.length; i++) {
  98. var e = document.getElementById(arguments[i]);
  99. if (e) {
  100. e.style.display = e.style.display == 'none' ? 'block': 'none';
  101. }
  102. }
  103. return false;
  104. }
  105. function varToggle(link, id) {
  106. toggle('v' + id);
  107. var s = link.getElementsByTagName('span')[0];
  108. var uarr = String.fromCharCode(0x25b6);
  109. var darr = String.fromCharCode(0x25bc);
  110. s.textContent = s.textContent == uarr ? darr : uarr;
  111. return false;
  112. }
  113. function switchPastebinFriendly(link) {
  114. s1 = "Switch to copy-and-paste view";
  115. s2 = "Switch back to interactive view";
  116. link.textContent = link.textContent.trim() == s1 ? s2: s1;
  117. toggle('browserTraceback', 'pastebinTraceback');
  118. return false;
  119. }
  120. //-->
  121. </script>
  122.  
  123. </head>
  124. <body>
  125. <div id="summary">
  126. <h1>AttributeError at /fenixAuthHandler/</h1>
  127. <pre class="exception_value">'FenixEduClient' object has no attribute 'refresh_token'</pre>
  128. <table class="meta">
  129.  
  130. <tbody><tr>
  131. <th>Request Method:</th>
  132. <td>GET</td>
  133. </tr>
  134. <tr>
  135. <th>Request URL:</th>
  136. <td>http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f</td>
  137. </tr>
  138.  
  139. <tr>
  140. <th>Django Version:</th>
  141. <td>1.11</td>
  142. </tr>
  143.  
  144. <tr>
  145. <th>Exception Type:</th>
  146. <td>AttributeError</td>
  147. </tr>
  148.  
  149.  
  150. <tr>
  151. <th>Exception Value:</th>
  152. <td><pre>'FenixEduClient' object has no attribute 'refresh_token'</pre></td>
  153. </tr>
  154.  
  155.  
  156. <tr>
  157. <th>Exception Location:</th>
  158. <td>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\__init__.py in _refresh_access_token, line 68</td>
  159. </tr>
  160.  
  161. <tr>
  162. <th>Python Executable:</th>
  163. <td>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\python.exe</td>
  164. </tr>
  165. <tr>
  166. <th>Python Version:</th>
  167. <td>3.6.3</td>
  168. </tr>
  169. <tr>
  170. <th>Python Path:</th>
  171. <td><pre>['C:\\Users\\Tiago\\Desktop\\FenixEdu-Django-Auth-Demo-master',
  172. 'C:\\Users\\Tiago\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip',
  173. 'C:\\Users\\Tiago\\AppData\\Local\\Programs\\Python\\Python36\\DLLs',
  174. 'C:\\Users\\Tiago\\AppData\\Local\\Programs\\Python\\Python36\\lib',
  175. 'C:\\Users\\Tiago\\AppData\\Local\\Programs\\Python\\Python36',
  176. 'C:\\Users\\Tiago\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages']</pre></td>
  177. </tr>
  178. <tr>
  179. <th>Server time:</th>
  180. <td>Fri, 19 Jan 2018 21:30:28 +0000</td>
  181. </tr>
  182. </tbody></table>
  183. </div>
  184.  
  185.  
  186.  
  187.  
  188. <div id="traceback">
  189. <h2>Traceback <span class="commands"><a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return switchPastebinFriendly(this);">
  190. Switch to copy-and-paste view</a></span>
  191. </h2>
  192.  
  193. <div id="browserTraceback">
  194. <ul class="traceback">
  195.  
  196.  
  197. <li class="frame django">
  198. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\handlers\exception.py</code> in <code>inner</code>
  199.  
  200.  
  201. <div class="context" id="c2031485278280">
  202.  
  203. <ol start="34" class="pre-context" id="pre2031485278280" style="display: none;">
  204.  
  205. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> This decorator is automatically applied to all middleware to ensure that</pre></li>
  206.  
  207. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> no middleware leaks an exception and that the next middleware in the stack</pre></li>
  208.  
  209. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> can rely on getting a response instead of an exception.</pre></li>
  210.  
  211. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> """</pre></li>
  212.  
  213. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> @wraps(get_response, assigned=available_attrs(get_response))</pre></li>
  214.  
  215. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> def inner(request):</pre></li>
  216.  
  217. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> try:</pre></li>
  218.  
  219. </ol>
  220.  
  221. <ol start="41" class="context-line">
  222. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> response = get_response(request)</pre> <span>...</span></li></ol>
  223.  
  224. <ol start="42" class="post-context" id="post2031485278280" style="display: none;">
  225.  
  226. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> except Exception as exc:</pre></li>
  227.  
  228. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> response = response_for_exception(request, exc)</pre></li>
  229.  
  230. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> return response</pre></li>
  231.  
  232. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre> return inner</pre></li>
  233.  
  234. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre></pre></li>
  235.  
  236. <li onclick="toggle(&#39;pre2031485278280&#39;, &#39;post2031485278280&#39;)"><pre></pre></li>
  237.  
  238. </ol>
  239.  
  240. </div>
  241.  
  242.  
  243.  
  244. <div class="commands">
  245.  
  246. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031485278280&#39;)"><span>▶</span> Local vars</a>
  247.  
  248. </div>
  249. <table class="vars" id="v2031485278280" style="display: none;">
  250. <thead>
  251. <tr>
  252. <th>Variable</th>
  253. <th>Value</th>
  254. </tr>
  255. </thead>
  256. <tbody>
  257.  
  258. <tr>
  259. <td>exc</td>
  260. <td class="code"><pre>AttributeError("'FenixEduClient' object has no attribute 'refresh_token'",)</pre></td>
  261. </tr>
  262.  
  263. <tr>
  264. <td>get_response</td>
  265. <td class="code"><pre>&lt;bound method BaseHandler._get_response of &lt;django.core.handlers.wsgi.WSGIHandler object at 0x000001D8FCE41320&gt;&gt;</pre></td>
  266. </tr>
  267.  
  268. <tr>
  269. <td>request</td>
  270. <td class="code"><pre>&lt;WSGIRequest: GET '/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'&gt;</pre></td>
  271. </tr>
  272.  
  273. </tbody>
  274. </table>
  275.  
  276. </li>
  277.  
  278.  
  279. <li class="frame django">
  280. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\handlers\base.py</code> in <code>_get_response</code>
  281.  
  282.  
  283. <div class="context" id="c2031485277064">
  284.  
  285. <ol start="180" class="pre-context" id="pre2031485277064" style="display: none;">
  286.  
  287. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> break</pre></li>
  288.  
  289. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre></pre></li>
  290.  
  291. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> if response is None:</pre></li>
  292.  
  293. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li>
  294.  
  295. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> try:</pre></li>
  296.  
  297. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li>
  298.  
  299. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> except Exception as e:</pre></li>
  300.  
  301. </ol>
  302.  
  303. <ol start="187" class="context-line">
  304. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol>
  305.  
  306. <ol start="188" class="post-context" id="post2031485277064" style="display: none;">
  307.  
  308. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre></pre></li>
  309.  
  310. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> # Complain if the view returned None (a common error).</pre></li>
  311.  
  312. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> if response is None:</pre></li>
  313.  
  314. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li>
  315.  
  316. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> view_name = callback.__name__</pre></li>
  317.  
  318. <li onclick="toggle(&#39;pre2031485277064&#39;, &#39;post2031485277064&#39;)"><pre> else: # CBV</pre></li>
  319.  
  320. </ol>
  321.  
  322. </div>
  323.  
  324.  
  325.  
  326. <div class="commands">
  327.  
  328. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031485277064&#39;)"><span>▶</span> Local vars</a>
  329.  
  330. </div>
  331. <table class="vars" id="v2031485277064" style="display: none;">
  332. <thead>
  333. <tr>
  334. <th>Variable</th>
  335. <th>Value</th>
  336. </tr>
  337. </thead>
  338. <tbody>
  339.  
  340. <tr>
  341. <td>callback</td>
  342. <td class="code"><pre>&lt;function handle_fenix_auth at 0x000001D8FD1B39D8&gt;</pre></td>
  343. </tr>
  344.  
  345. <tr>
  346. <td>callback_args</td>
  347. <td class="code"><pre>()</pre></td>
  348. </tr>
  349.  
  350. <tr>
  351. <td>callback_kwargs</td>
  352. <td class="code"><pre>{}</pre></td>
  353. </tr>
  354.  
  355. <tr>
  356. <td>middleware_method</td>
  357. <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x000001D8FCD0EE80&gt;&gt;</pre></td>
  358. </tr>
  359.  
  360. <tr>
  361. <td>request</td>
  362. <td class="code"><pre>&lt;WSGIRequest: GET '/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'&gt;</pre></td>
  363. </tr>
  364.  
  365. <tr>
  366. <td>resolver</td>
  367. <td class="code"><pre>&lt;RegexURLResolver 'FenixAuthDemo.urls' (None:None) ^/&gt;</pre></td>
  368. </tr>
  369.  
  370. <tr>
  371. <td>resolver_match</td>
  372. <td class="code"><pre>ResolverMatch(func=demo_app.views.handle_fenix_auth, args=(), kwargs={}, url_name=None, app_names=[], namespaces=[])</pre></td>
  373. </tr>
  374.  
  375. <tr>
  376. <td>response</td>
  377. <td class="code"><pre>None</pre></td>
  378. </tr>
  379.  
  380. <tr>
  381. <td>self</td>
  382. <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x000001D8FCE41320&gt;</pre></td>
  383. </tr>
  384.  
  385. <tr>
  386. <td>wrapped_callback</td>
  387. <td class="code"><pre>&lt;function handle_fenix_auth at 0x000001D8FD1B39D8&gt;</pre></td>
  388. </tr>
  389.  
  390. </tbody>
  391. </table>
  392.  
  393. </li>
  394.  
  395.  
  396. <li class="frame django">
  397. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\handlers\base.py</code> in <code>_get_response</code>
  398.  
  399.  
  400. <div class="context" id="c2031483825864">
  401.  
  402. <ol start="178" class="pre-context" id="pre2031483825864" style="display: none;">
  403.  
  404. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li>
  405.  
  406. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> if response:</pre></li>
  407.  
  408. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> break</pre></li>
  409.  
  410. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre></pre></li>
  411.  
  412. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> if response is None:</pre></li>
  413.  
  414. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li>
  415.  
  416. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> try:</pre></li>
  417.  
  418. </ol>
  419.  
  420. <ol start="185" class="context-line">
  421. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
  422.  
  423. <ol start="186" class="post-context" id="post2031483825864" style="display: none;">
  424.  
  425. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> except Exception as e:</pre></li>
  426.  
  427. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> response = self.process_exception_by_middleware(e, request)</pre></li>
  428.  
  429. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre></pre></li>
  430.  
  431. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> # Complain if the view returned None (a common error).</pre></li>
  432.  
  433. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> if response is None:</pre></li>
  434.  
  435. <li onclick="toggle(&#39;pre2031483825864&#39;, &#39;post2031483825864&#39;)"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li>
  436.  
  437. </ol>
  438.  
  439. </div>
  440.  
  441.  
  442.  
  443. <div class="commands">
  444.  
  445. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031483825864&#39;)"><span>▶</span> Local vars</a>
  446.  
  447. </div>
  448. <table class="vars" id="v2031483825864" style="display: none;">
  449. <thead>
  450. <tr>
  451. <th>Variable</th>
  452. <th>Value</th>
  453. </tr>
  454. </thead>
  455. <tbody>
  456.  
  457. <tr>
  458. <td>callback</td>
  459. <td class="code"><pre>&lt;function handle_fenix_auth at 0x000001D8FD1B39D8&gt;</pre></td>
  460. </tr>
  461.  
  462. <tr>
  463. <td>callback_args</td>
  464. <td class="code"><pre>()</pre></td>
  465. </tr>
  466.  
  467. <tr>
  468. <td>callback_kwargs</td>
  469. <td class="code"><pre>{}</pre></td>
  470. </tr>
  471.  
  472. <tr>
  473. <td>middleware_method</td>
  474. <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x000001D8FCD0EE80&gt;&gt;</pre></td>
  475. </tr>
  476.  
  477. <tr>
  478. <td>request</td>
  479. <td class="code"><pre>&lt;WSGIRequest: GET '/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'&gt;</pre></td>
  480. </tr>
  481.  
  482. <tr>
  483. <td>resolver</td>
  484. <td class="code"><pre>&lt;RegexURLResolver 'FenixAuthDemo.urls' (None:None) ^/&gt;</pre></td>
  485. </tr>
  486.  
  487. <tr>
  488. <td>resolver_match</td>
  489. <td class="code"><pre>ResolverMatch(func=demo_app.views.handle_fenix_auth, args=(), kwargs={}, url_name=None, app_names=[], namespaces=[])</pre></td>
  490. </tr>
  491.  
  492. <tr>
  493. <td>response</td>
  494. <td class="code"><pre>None</pre></td>
  495. </tr>
  496.  
  497. <tr>
  498. <td>self</td>
  499. <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x000001D8FCE41320&gt;</pre></td>
  500. </tr>
  501.  
  502. <tr>
  503. <td>wrapped_callback</td>
  504. <td class="code"><pre>&lt;function handle_fenix_auth at 0x000001D8FD1B39D8&gt;</pre></td>
  505. </tr>
  506.  
  507. </tbody>
  508. </table>
  509.  
  510. </li>
  511.  
  512.  
  513. <li class="frame user">
  514. <code>C:\Users\Tiago\Desktop\FenixEdu-Django-Auth-Demo-master\demo_app\views.py</code> in <code>handle_fenix_auth</code>
  515.  
  516.  
  517. <div class="context" id="c2031483823048">
  518.  
  519. <ol start="13" class="pre-context" id="pre2031483823048" style="display: none;">
  520.  
  521. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> else:</pre></li>
  522.  
  523. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> return HttpResponseRedirect(fenixedu_client.get_authentication_url())</pre></li>
  524.  
  525. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre></pre></li>
  526.  
  527. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre></pre></li>
  528.  
  529. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre>def handle_fenix_auth(request):</pre></li>
  530.  
  531. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> code = request.GET.get('code', None)</pre></li>
  532.  
  533. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> if code is not None and not request.user.is_authenticated():</pre></li>
  534.  
  535. </ol>
  536.  
  537. <ol start="20" class="context-line">
  538. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> user = authenticate(request=request, client=fenixedu_client, code=code)</pre> <span>...</span></li></ol>
  539.  
  540. <ol start="21" class="post-context" id="post2031483823048" style="display: none;">
  541.  
  542. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> if user is not None:</pre></li>
  543.  
  544. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> login(request, user)</pre></li>
  545.  
  546. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> return HttpResponseRedirect(reverse('home'))</pre></li>
  547.  
  548. <li onclick="toggle(&#39;pre2031483823048&#39;, &#39;post2031483823048&#39;)"><pre> return HttpResponse('An error occured while trying to authenticate you with FenixEdu', status=500)</pre></li>
  549.  
  550. </ol>
  551.  
  552. </div>
  553.  
  554.  
  555.  
  556. <div class="commands">
  557.  
  558. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031483823048&#39;)"><span>▶</span> Local vars</a>
  559.  
  560. </div>
  561. <table class="vars" id="v2031483823048" style="display: none;">
  562. <thead>
  563. <tr>
  564. <th>Variable</th>
  565. <th>Value</th>
  566. </tr>
  567. </thead>
  568. <tbody>
  569.  
  570. <tr>
  571. <td>code</td>
  572. <td class="code"><pre>'3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'</pre></td>
  573. </tr>
  574.  
  575. <tr>
  576. <td>request</td>
  577. <td class="code"><pre>&lt;WSGIRequest: GET '/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'&gt;</pre></td>
  578. </tr>
  579.  
  580. </tbody>
  581. </table>
  582.  
  583. </li>
  584.  
  585.  
  586. <li class="frame django">
  587. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\contrib\auth\__init__.py</code> in <code>authenticate</code>
  588.  
  589.  
  590. <div class="context" id="c2031483605384">
  591.  
  592. <ol start="93" class="pre-context" id="pre2031483605384" style="display: none;">
  593.  
  594. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> warnings.warn(</pre></li>
  595.  
  596. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> "In %s.authenticate(), move the `request` keyword argument "</pre></li>
  597.  
  598. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> "to the first positional argument." % backend_path,</pre></li>
  599.  
  600. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> RemovedInDjango21Warning</pre></li>
  601.  
  602. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> )</pre></li>
  603.  
  604. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre></pre></li>
  605.  
  606. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> try:</pre></li>
  607.  
  608. </ol>
  609.  
  610. <ol start="100" class="context-line">
  611. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> user = backend.authenticate(*args, **credentials)</pre> <span>...</span></li></ol>
  612.  
  613. <ol start="101" class="post-context" id="post2031483605384" style="display: none;">
  614.  
  615. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> except PermissionDenied:</pre></li>
  616.  
  617. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> # This backend says to stop in our tracks - this user should not be allowed in at all.</pre></li>
  618.  
  619. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> break</pre></li>
  620.  
  621. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> if user is None:</pre></li>
  622.  
  623. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> continue</pre></li>
  624.  
  625. <li onclick="toggle(&#39;pre2031483605384&#39;, &#39;post2031483605384&#39;)"><pre> # Annotate the user object with the path of the backend.</pre></li>
  626.  
  627. </ol>
  628.  
  629. </div>
  630.  
  631.  
  632.  
  633. <div class="commands">
  634.  
  635. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031483605384&#39;)"><span>▶</span> Local vars</a>
  636.  
  637. </div>
  638. <table class="vars" id="v2031483605384" style="display: none;">
  639. <thead>
  640. <tr>
  641. <th>Variable</th>
  642. <th>Value</th>
  643. </tr>
  644. </thead>
  645. <tbody>
  646.  
  647. <tr>
  648. <td>args</td>
  649. <td class="code"><pre>(&lt;WSGIRequest: GET '/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'&gt;,)</pre></td>
  650. </tr>
  651.  
  652. <tr>
  653. <td>backend</td>
  654. <td class="code"><pre>&lt;fenixedu.authentication.backend.FenixEduAuthenticationBackend object at 0x000001D8FDD6EA20&gt;</pre></td>
  655. </tr>
  656.  
  657. <tr>
  658. <td>backend_path</td>
  659. <td class="code"><pre>'fenixedu.authentication.backend.FenixEduAuthenticationBackend'</pre></td>
  660. </tr>
  661.  
  662. <tr>
  663. <td>credentials</td>
  664. <td class="code"><pre>{'client': &lt;fenixedu.FenixEduClient object at 0x000001D8FD1B49E8&gt;,
  665. 'code': '3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'}</pre></td>
  666. </tr>
  667.  
  668. <tr>
  669. <td>request</td>
  670. <td class="code"><pre>&lt;WSGIRequest: GET '/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'&gt;</pre></td>
  671. </tr>
  672.  
  673. </tbody>
  674. </table>
  675.  
  676. </li>
  677.  
  678.  
  679. <li class="frame user">
  680. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\authentication\backend.py</code> in <code>authenticate</code>
  681.  
  682.  
  683. <div class="context" id="c2031483607560">
  684.  
  685. <ol start="5" class="pre-context" id="pre2031483607560" style="display: none;">
  686.  
  687. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> def add_info_to_session(self, request, fenixeduUser):</pre></li>
  688.  
  689. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> request.session['access_token'] = fenixeduUser.access_token</pre></li>
  690.  
  691. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> request.session['refresh_token'] = fenixeduUser.refresh_token</pre></li>
  692.  
  693. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre></pre></li>
  694.  
  695. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> def authenticate(self, request, client, code=None):</pre></li>
  696.  
  697. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> if code is not None:</pre></li>
  698.  
  699. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> fenixeduUser = client.get_user_by_code(code)</pre></li>
  700.  
  701. </ol>
  702.  
  703. <ol start="12" class="context-line">
  704. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> person = client.get_person(fenixeduUser)</pre> <span>...</span></li></ol>
  705.  
  706. <ol start="13" class="post-context" id="post2031483607560" style="display: none;">
  707.  
  708. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> username = person['username']</pre></li>
  709.  
  710. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> try:</pre></li>
  711.  
  712. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> user = User.objects.get(username=username)</pre></li>
  713.  
  714. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> except User.DoesNotExist:</pre></li>
  715.  
  716. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> # The user is not registered in the application yet</pre></li>
  717.  
  718. <li onclick="toggle(&#39;pre2031483607560&#39;, &#39;post2031483607560&#39;)"><pre> name = person['name']</pre></li>
  719.  
  720. </ol>
  721.  
  722. </div>
  723.  
  724.  
  725.  
  726. <div class="commands">
  727.  
  728. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031483607560&#39;)"><span>▶</span> Local vars</a>
  729.  
  730. </div>
  731. <table class="vars" id="v2031483607560" style="display: none;">
  732. <thead>
  733. <tr>
  734. <th>Variable</th>
  735. <th>Value</th>
  736. </tr>
  737. </thead>
  738. <tbody>
  739.  
  740. <tr>
  741. <td>client</td>
  742. <td class="code"><pre>&lt;fenixedu.FenixEduClient object at 0x000001D8FD1B49E8&gt;</pre></td>
  743. </tr>
  744.  
  745. <tr>
  746. <td>code</td>
  747. <td class="code"><pre>'3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'</pre></td>
  748. </tr>
  749.  
  750. <tr>
  751. <td>fenixeduUser</td>
  752. <td class="code"><pre>&lt;fenixedu.user.User object at 0x000001D8FDD6E160&gt;</pre></td>
  753. </tr>
  754.  
  755. <tr>
  756. <td>request</td>
  757. <td class="code"><pre>&lt;WSGIRequest: GET '/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'&gt;</pre></td>
  758. </tr>
  759.  
  760. <tr>
  761. <td>self</td>
  762. <td class="code"><pre>&lt;fenixedu.authentication.backend.FenixEduAuthenticationBackend object at 0x000001D8FDD6EA20&gt;</pre></td>
  763. </tr>
  764.  
  765. </tbody>
  766. </table>
  767.  
  768. </li>
  769.  
  770.  
  771. <li class="frame user">
  772. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\__init__.py</code> in <code>get_person</code>
  773.  
  774.  
  775. <div class="context" id="c2031483021576">
  776.  
  777. <ol start="170" class="pre-context" id="pre2031483021576" style="display: none;">
  778.  
  779. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> else:</pre></li>
  780.  
  781. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> params = None</pre></li>
  782.  
  783. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> r = self._api_public_request(endpoints.SPACE, params=params, endpoint_params={'id': id})</pre></li>
  784.  
  785. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> return r.json()</pre></li>
  786.  
  787. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre></pre></li>
  788.  
  789. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> """ Private Endpoints """</pre></li>
  790.  
  791. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> def get_person(self, user):</pre></li>
  792.  
  793. </ol>
  794.  
  795. <ol start="177" class="context-line">
  796. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> r = self._api_private_request(endpoints.PERSON, user=user)</pre> <span>...</span></li></ol>
  797.  
  798. <ol start="178" class="post-context" id="post2031483021576" style="display: none;">
  799.  
  800. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> return r.json()</pre></li>
  801.  
  802. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre></pre></li>
  803.  
  804. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> def get_person_classes_calendar(self, user):</pre></li>
  805.  
  806. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> r = self._api_private_request(endpoints.PERSON_CALENDAR_CLASSES, user=user)</pre></li>
  807.  
  808. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre> return r.json()</pre></li>
  809.  
  810. <li onclick="toggle(&#39;pre2031483021576&#39;, &#39;post2031483021576&#39;)"><pre></pre></li>
  811.  
  812. </ol>
  813.  
  814. </div>
  815.  
  816.  
  817.  
  818. <div class="commands">
  819.  
  820. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031483021576&#39;)"><span>▶</span> Local vars</a>
  821.  
  822. </div>
  823. <table class="vars" id="v2031483021576" style="display: none;">
  824. <thead>
  825. <tr>
  826. <th>Variable</th>
  827. <th>Value</th>
  828. </tr>
  829. </thead>
  830. <tbody>
  831.  
  832. <tr>
  833. <td>self</td>
  834. <td class="code"><pre>&lt;fenixedu.FenixEduClient object at 0x000001D8FD1B49E8&gt;</pre></td>
  835. </tr>
  836.  
  837. <tr>
  838. <td>user</td>
  839. <td class="code"><pre>&lt;fenixedu.user.User object at 0x000001D8FDD6E160&gt;</pre></td>
  840. </tr>
  841.  
  842. </tbody>
  843. </table>
  844.  
  845. </li>
  846.  
  847.  
  848. <li class="frame user">
  849. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\__init__.py</code> in <code>_api_private_request</code>
  850.  
  851.  
  852. <div class="context" id="c2031483022536">
  853.  
  854. <ol start="55" class="pre-context" id="pre2031483022536" style="display: none;">
  855.  
  856. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> url = self._get_api_endpoint_url(endpoint)</pre></li>
  857.  
  858. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre></pre></li>
  859.  
  860. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> params['access_token'] = user.access_token</pre></li>
  861.  
  862. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> r = self._request(url, params = params, method = method, headers = headers)</pre></li>
  863.  
  864. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> """ Check if everything was fine</pre></li>
  865.  
  866. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> If not: Try to refresh the access token """</pre></li>
  867.  
  868. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> if r.status_code == 401:</pre></li>
  869.  
  870. </ol>
  871.  
  872. <ol start="62" class="context-line">
  873. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> self._refresh_access_token(user)</pre> <span>...</span></li></ol>
  874.  
  875. <ol start="63" class="post-context" id="post2031483022536" style="display: none;">
  876.  
  877. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> """ Repeat the request """</pre></li>
  878.  
  879. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> r = self._request(url, params = params, method = method, headers = headers)</pre></li>
  880.  
  881. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> return r</pre></li>
  882.  
  883. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre></pre></li>
  884.  
  885. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> def _refresh_access_token(self, user):</pre></li>
  886.  
  887. <li onclick="toggle(&#39;pre2031483022536&#39;, &#39;post2031483022536&#39;)"><pre> url = self._get_oauth_endpoint_url(self.refresh_token)</pre></li>
  888.  
  889. </ol>
  890.  
  891. </div>
  892.  
  893.  
  894.  
  895. <div class="commands">
  896.  
  897. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031483022536&#39;)"><span>▶</span> Local vars</a>
  898.  
  899. </div>
  900. <table class="vars" id="v2031483022536" style="display: none;">
  901. <thead>
  902. <tr>
  903. <th>Variable</th>
  904. <th>Value</th>
  905. </tr>
  906. </thead>
  907. <tbody>
  908.  
  909. <tr>
  910. <td>endpoint</td>
  911. <td class="code"><pre>'person'</pre></td>
  912. </tr>
  913.  
  914. <tr>
  915. <td>headers</td>
  916. <td class="code"><pre>None</pre></td>
  917. </tr>
  918.  
  919. <tr>
  920. <td>method</td>
  921. <td class="code"><pre>None</pre></td>
  922. </tr>
  923.  
  924. <tr>
  925. <td>params</td>
  926. <td class="code"><pre>{'access_token': 'MTk3NzM5ODY0ODE0MDE0MjowMzYwZWY1YjRhNzQ3YTJkZTNlMzM0NGNiY2VmM2VjZTVkOTczZGU1NDlhZGNjNGIyOTJkNmY0Y2EyNDMzMjM4MTI5Y2MzYzIxNTNiNzFiYTgyMDc2MGYwY2ZlZDgyZTljY2NjMGQzYzk4ZDIyZDBjZDgzYzNjNjE4ODViYmI2Ng'}</pre></td>
  927. </tr>
  928.  
  929. <tr>
  930. <td>r</td>
  931. <td class="code"><pre>&lt;Response [401]&gt;</pre></td>
  932. </tr>
  933.  
  934. <tr>
  935. <td>self</td>
  936. <td class="code"><pre>&lt;fenixedu.FenixEduClient object at 0x000001D8FD1B49E8&gt;</pre></td>
  937. </tr>
  938.  
  939. <tr>
  940. <td>url</td>
  941. <td class="code"><pre>'https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person'</pre></td>
  942. </tr>
  943.  
  944. <tr>
  945. <td>user</td>
  946. <td class="code"><pre>&lt;fenixedu.user.User object at 0x000001D8FDD6E160&gt;</pre></td>
  947. </tr>
  948.  
  949. </tbody>
  950. </table>
  951.  
  952. </li>
  953.  
  954.  
  955. <li class="frame user">
  956. <code>C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\__init__.py</code> in <code>_refresh_access_token</code>
  957.  
  958.  
  959. <div class="context" id="c2031483517512">
  960.  
  961. <ol start="61" class="pre-context" id="pre2031483517512" style="display: none;">
  962.  
  963. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> if r.status_code == 401:</pre></li>
  964.  
  965. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> self._refresh_access_token(user)</pre></li>
  966.  
  967. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> """ Repeat the request """</pre></li>
  968.  
  969. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> r = self._request(url, params = params, method = method, headers = headers)</pre></li>
  970.  
  971. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> return r</pre></li>
  972.  
  973. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre></pre></li>
  974.  
  975. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> def _refresh_access_token(self, user):</pre></li>
  976.  
  977. </ol>
  978.  
  979. <ol start="68" class="context-line">
  980. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> url = self._get_oauth_endpoint_url(self.refresh_token)</pre> <span>...</span></li></ol>
  981.  
  982. <ol start="69" class="post-context" id="post2031483517512" style="display: none;">
  983.  
  984. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> req_params = {'client_id' : self.config.client_id,</pre></li>
  985.  
  986. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> 'client_secret' : self.config.client_secret,</pre></li>
  987.  
  988. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> 'refresh_token' : user.refresh_token,</pre></li>
  989.  
  990. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> 'grant_type' : 'refresh_token',</pre></li>
  991.  
  992. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> 'redirect_uri' : self.config.redirect_url,</pre></li>
  993.  
  994. <li onclick="toggle(&#39;pre2031483517512&#39;, &#39;post2031483517512&#39;)"><pre> 'code' : user.code}</pre></li>
  995.  
  996. </ol>
  997.  
  998. </div>
  999.  
  1000.  
  1001.  
  1002. <div class="commands">
  1003.  
  1004. <a href="http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f#" onclick="return varToggle(this, &#39;2031483517512&#39;)"><span>▶</span> Local vars</a>
  1005.  
  1006. </div>
  1007. <table class="vars" id="v2031483517512" style="display: none;">
  1008. <thead>
  1009. <tr>
  1010. <th>Variable</th>
  1011. <th>Value</th>
  1012. </tr>
  1013. </thead>
  1014. <tbody>
  1015.  
  1016. <tr>
  1017. <td>self</td>
  1018. <td class="code"><pre>&lt;fenixedu.FenixEduClient object at 0x000001D8FD1B49E8&gt;</pre></td>
  1019. </tr>
  1020.  
  1021. <tr>
  1022. <td>user</td>
  1023. <td class="code"><pre>&lt;fenixedu.user.User object at 0x000001D8FDD6E160&gt;</pre></td>
  1024. </tr>
  1025.  
  1026. </tbody>
  1027. </table>
  1028.  
  1029. </li>
  1030.  
  1031. </ul>
  1032. </div>
  1033.  
  1034. <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
  1035.  
  1036. <div id="pastebinTraceback" class="pastebin" style="display: none;">
  1037. <input type="hidden" name="language" value="PythonConsole">
  1038. <input type="hidden" name="title" value="AttributeError at /fenixAuthHandler/">
  1039. <input type="hidden" name="source" value="Django Dpaste Agent">
  1040. <input type="hidden" name="poster" value="Django">
  1041. <textarea name="content" id="traceback_area" cols="140" rows="25">Environment:
  1042.  
  1043.  
  1044. Request Method: GET
  1045. Request URL: http://localhost:8000/fenixAuthHandler/?code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f
  1046.  
  1047. Django Version: 1.11
  1048. Python Version: 3.6.3
  1049. Installed Applications:
  1050. ['django.contrib.admin',
  1051. 'django.contrib.auth',
  1052. 'django.contrib.contenttypes',
  1053. 'django.contrib.sessions',
  1054. 'django.contrib.messages',
  1055. 'django.contrib.staticfiles']
  1056. Installed Middleware:
  1057. ['django.middleware.security.SecurityMiddleware',
  1058. 'django.contrib.sessions.middleware.SessionMiddleware',
  1059. 'django.middleware.common.CommonMiddleware',
  1060. 'django.middleware.csrf.CsrfViewMiddleware',
  1061. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  1062. 'django.contrib.messages.middleware.MessageMiddleware',
  1063. 'django.middleware.clickjacking.XFrameOptionsMiddleware']
  1064.  
  1065.  
  1066.  
  1067. Traceback:
  1068.  
  1069. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\handlers\exception.py" in inner
  1070. 41. response = get_response(request)
  1071.  
  1072. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\handlers\base.py" in _get_response
  1073. 187. response = self.process_exception_by_middleware(e, request)
  1074.  
  1075. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\handlers\base.py" in _get_response
  1076. 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
  1077.  
  1078. File "C:\Users\Tiago\Desktop\FenixEdu-Django-Auth-Demo-master\demo_app\views.py" in handle_fenix_auth
  1079. 20. user = authenticate(request=request, client=fenixedu_client, code=code)
  1080.  
  1081. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\django\contrib\auth\__init__.py" in authenticate
  1082. 100. user = backend.authenticate(*args, **credentials)
  1083.  
  1084. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\authentication\backend.py" in authenticate
  1085. 12. person = client.get_person(fenixeduUser)
  1086.  
  1087. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\__init__.py" in get_person
  1088. 177. r = self._api_private_request(endpoints.PERSON, user=user)
  1089.  
  1090. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\__init__.py" in _api_private_request
  1091. 62. self._refresh_access_token(user)
  1092.  
  1093. File "C:\Users\Tiago\AppData\Local\Programs\Python\Python36\lib\site-packages\fenixedu\__init__.py" in _refresh_access_token
  1094. 68. url = self._get_oauth_endpoint_url(self.refresh_token)
  1095.  
  1096. Exception Type: AttributeError at /fenixAuthHandler/
  1097. Exception Value: 'FenixEduClient' object has no attribute 'refresh_token'
  1098. </textarea>
  1099. <br><br>
  1100. <input type="submit" value="Share this traceback on a public website">
  1101. </div>
  1102. </form>
  1103. </div>
  1104.  
  1105.  
  1106.  
  1107. <div id="requestinfo">
  1108. <h2>Request information</h2>
  1109.  
  1110.  
  1111.  
  1112. <h3 id="user-info">USER</h3>
  1113. <p>AnonymousUser</p>
  1114.  
  1115.  
  1116. <h3 id="get-info">GET</h3>
  1117.  
  1118. <table class="req">
  1119. <thead>
  1120. <tr>
  1121. <th>Variable</th>
  1122. <th>Value</th>
  1123. </tr>
  1124. </thead>
  1125. <tbody>
  1126.  
  1127. <tr>
  1128. <td>code</td>
  1129. <td class="code"><pre>'3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'</pre></td>
  1130. </tr>
  1131.  
  1132. </tbody>
  1133. </table>
  1134.  
  1135.  
  1136. <h3 id="post-info">POST</h3>
  1137.  
  1138. <table class="req">
  1139. <thead>
  1140. <tr>
  1141. <th>Variable</th>
  1142. <th>Value</th>
  1143. </tr>
  1144. </thead>
  1145. <tbody>
  1146.  
  1147. </tbody>
  1148. </table>
  1149.  
  1150. <h3 id="files-info">FILES</h3>
  1151.  
  1152. <p>No FILES data</p>
  1153.  
  1154.  
  1155.  
  1156. <h3 id="cookie-info">COOKIES</h3>
  1157.  
  1158. <p>No cookie data</p>
  1159.  
  1160.  
  1161. <h3 id="meta-info">META</h3>
  1162. <table class="req">
  1163. <thead>
  1164. <tr>
  1165. <th>Variable</th>
  1166. <th>Value</th>
  1167. </tr>
  1168. </thead>
  1169. <tbody>
  1170.  
  1171. <tr>
  1172. <td>ALLUSERSPROFILE</td>
  1173. <td class="code"><pre>'C:\\ProgramData'</pre></td>
  1174. </tr>
  1175.  
  1176. <tr>
  1177. <td>APPDATA</td>
  1178. <td class="code"><pre>'C:\\Users\\Tiago\\AppData\\Roaming'</pre></td>
  1179. </tr>
  1180.  
  1181. <tr>
  1182. <td>COMMONPROGRAMFILES</td>
  1183. <td class="code"><pre>'C:\\Program Files\\Common Files'</pre></td>
  1184. </tr>
  1185.  
  1186. <tr>
  1187. <td>COMMONPROGRAMFILES(X86)</td>
  1188. <td class="code"><pre>'C:\\Program Files (x86)\\Common Files'</pre></td>
  1189. </tr>
  1190.  
  1191. <tr>
  1192. <td>COMMONPROGRAMW6432</td>
  1193. <td class="code"><pre>'C:\\Program Files\\Common Files'</pre></td>
  1194. </tr>
  1195.  
  1196. <tr>
  1197. <td>COMPUTERNAME</td>
  1198. <td class="code"><pre>'DESKTOP-PKHSSI9'</pre></td>
  1199. </tr>
  1200.  
  1201. <tr>
  1202. <td>COMSPEC</td>
  1203. <td class="code"><pre>'C:\\WINDOWS\\system32\\cmd.exe'</pre></td>
  1204. </tr>
  1205.  
  1206. <tr>
  1207. <td>CONTENT_LENGTH</td>
  1208. <td class="code"><pre>''</pre></td>
  1209. </tr>
  1210.  
  1211. <tr>
  1212. <td>CONTENT_TYPE</td>
  1213. <td class="code"><pre>'text/plain'</pre></td>
  1214. </tr>
  1215.  
  1216. <tr>
  1217. <td>DJANGO_SETTINGS_MODULE</td>
  1218. <td class="code"><pre>'FenixAuthDemo.settings'</pre></td>
  1219. </tr>
  1220.  
  1221. <tr>
  1222. <td>GATEWAY_INTERFACE</td>
  1223. <td class="code"><pre>'CGI/1.1'</pre></td>
  1224. </tr>
  1225.  
  1226. <tr>
  1227. <td>HOMEDRIVE</td>
  1228. <td class="code"><pre>'C:'</pre></td>
  1229. </tr>
  1230.  
  1231. <tr>
  1232. <td>HOMEPATH</td>
  1233. <td class="code"><pre>'\\Users\\Tiago'</pre></td>
  1234. </tr>
  1235.  
  1236. <tr>
  1237. <td>HTTP_ACCEPT</td>
  1238. <td class="code"><pre>'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'</pre></td>
  1239. </tr>
  1240.  
  1241. <tr>
  1242. <td>HTTP_ACCEPT_ENCODING</td>
  1243. <td class="code"><pre>'gzip, deflate, br'</pre></td>
  1244. </tr>
  1245.  
  1246. <tr>
  1247. <td>HTTP_ACCEPT_LANGUAGE</td>
  1248. <td class="code"><pre>'pt-PT,pt;q=0.9,en-US;q=0.8,en;q=0.7'</pre></td>
  1249. </tr>
  1250.  
  1251. <tr>
  1252. <td>HTTP_CONNECTION</td>
  1253. <td class="code"><pre>'keep-alive'</pre></td>
  1254. </tr>
  1255.  
  1256. <tr>
  1257. <td>HTTP_HOST</td>
  1258. <td class="code"><pre>'localhost:8000'</pre></td>
  1259. </tr>
  1260.  
  1261. <tr>
  1262. <td>HTTP_UPGRADE_INSECURE_REQUESTS</td>
  1263. <td class="code"><pre>'1'</pre></td>
  1264. </tr>
  1265.  
  1266. <tr>
  1267. <td>HTTP_USER_AGENT</td>
  1268. <td class="code"><pre>('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like '
  1269. 'Gecko) Chrome/63.0.3239.132 Safari/537.36')</pre></td>
  1270. </tr>
  1271.  
  1272. <tr>
  1273. <td>LOCALAPPDATA</td>
  1274. <td class="code"><pre>'C:\\Users\\Tiago\\AppData\\Local'</pre></td>
  1275. </tr>
  1276.  
  1277. <tr>
  1278. <td>LOGONSERVER</td>
  1279. <td class="code"><pre>'\\\\DESKTOP-PKHSSI9'</pre></td>
  1280. </tr>
  1281.  
  1282. <tr>
  1283. <td>NUMBER_OF_PROCESSORS</td>
  1284. <td class="code"><pre>'8'</pre></td>
  1285. </tr>
  1286.  
  1287. <tr>
  1288. <td>ONEDRIVE</td>
  1289. <td class="code"><pre>'C:\\Users\\Tiago\\OneDrive'</pre></td>
  1290. </tr>
  1291.  
  1292. <tr>
  1293. <td>OS</td>
  1294. <td class="code"><pre>'Windows_NT'</pre></td>
  1295. </tr>
  1296.  
  1297. <tr>
  1298. <td>PATH</td>
  1299. <td class="code"><pre>('C:\\Program Files (x86)\\Intel\\iCLS Client\\;C:\\Program Files\\Intel\\iCLS '
  1300. 'Client\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program '
  1301. 'Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program '
  1302. 'Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files '
  1303. '(x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program '
  1304. 'Files\\Intel\\Intel(R) Management Engine '
  1305. 'Components\\IPT;C:\\Users\\Tiago\\AppData\\Local\\Programs\\Python\\Python36\\Scripts\\;C:\\Users\\Tiago\\AppData\\Local\\Programs\\Python\\Python36\\;C:\\Users\\Tiago\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\Tiago\\AppData\\Local\\Google\\Cloud '
  1306. 'SDK\\google-cloud-sdk\\bin')</pre></td>
  1307. </tr>
  1308.  
  1309. <tr>
  1310. <td>PATHEXT</td>
  1311. <td class="code"><pre>'.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'</pre></td>
  1312. </tr>
  1313.  
  1314. <tr>
  1315. <td>PATH_INFO</td>
  1316. <td class="code"><pre>'/fenixAuthHandler/'</pre></td>
  1317. </tr>
  1318.  
  1319. <tr>
  1320. <td>PROCESSOR_ARCHITECTURE</td>
  1321. <td class="code"><pre>'AMD64'</pre></td>
  1322. </tr>
  1323.  
  1324. <tr>
  1325. <td>PROCESSOR_IDENTIFIER</td>
  1326. <td class="code"><pre>'Intel64 Family 6 Model 142 Stepping 10, GenuineIntel'</pre></td>
  1327. </tr>
  1328.  
  1329. <tr>
  1330. <td>PROCESSOR_LEVEL</td>
  1331. <td class="code"><pre>'6'</pre></td>
  1332. </tr>
  1333.  
  1334. <tr>
  1335. <td>PROCESSOR_REVISION</td>
  1336. <td class="code"><pre>'8e0a'</pre></td>
  1337. </tr>
  1338.  
  1339. <tr>
  1340. <td>PROGRAMDATA</td>
  1341. <td class="code"><pre>'C:\\ProgramData'</pre></td>
  1342. </tr>
  1343.  
  1344. <tr>
  1345. <td>PROGRAMFILES</td>
  1346. <td class="code"><pre>'C:\\Program Files'</pre></td>
  1347. </tr>
  1348.  
  1349. <tr>
  1350. <td>PROGRAMFILES(X86)</td>
  1351. <td class="code"><pre>'C:\\Program Files (x86)'</pre></td>
  1352. </tr>
  1353.  
  1354. <tr>
  1355. <td>PROGRAMW6432</td>
  1356. <td class="code"><pre>'C:\\Program Files'</pre></td>
  1357. </tr>
  1358.  
  1359. <tr>
  1360. <td>PROMPT</td>
  1361. <td class="code"><pre>'$P$G'</pre></td>
  1362. </tr>
  1363.  
  1364. <tr>
  1365. <td>PSMODULEPATH</td>
  1366. <td class="code"><pre>(';C:\\Users\\Tiago\\AppData\\Local\\Google\\Cloud '
  1367. 'SDK\\google-cloud-sdk\\platform\\PowerShell')</pre></td>
  1368. </tr>
  1369.  
  1370. <tr>
  1371. <td>PUBLIC</td>
  1372. <td class="code"><pre>'C:\\Users\\Public'</pre></td>
  1373. </tr>
  1374.  
  1375. <tr>
  1376. <td>QUERY_STRING</td>
  1377. <td class="code"><pre>'code=3d9d1a63e25003b5903298065368d1049bfbc930ec85e12452d8290825759860e865e18c45113fd38a8a9dc46dfe65488a94328ec3463a385965c0658ed2953f'</pre></td>
  1378. </tr>
  1379.  
  1380. <tr>
  1381. <td>REMOTE_ADDR</td>
  1382. <td class="code"><pre>'127.0.0.1'</pre></td>
  1383. </tr>
  1384.  
  1385. <tr>
  1386. <td>REMOTE_HOST</td>
  1387. <td class="code"><pre>''</pre></td>
  1388. </tr>
  1389.  
  1390. <tr>
  1391. <td>REQUEST_METHOD</td>
  1392. <td class="code"><pre>'GET'</pre></td>
  1393. </tr>
  1394.  
  1395. <tr>
  1396. <td>RUN_MAIN</td>
  1397. <td class="code"><pre>'true'</pre></td>
  1398. </tr>
  1399.  
  1400. <tr>
  1401. <td>SCRIPT_NAME</td>
  1402. <td class="code"><pre>''</pre></td>
  1403. </tr>
  1404.  
  1405. <tr>
  1406. <td>SERVER_NAME</td>
  1407. <td class="code"><pre>'DESKTOP-PKHSSI9.lan'</pre></td>
  1408. </tr>
  1409.  
  1410. <tr>
  1411. <td>SERVER_PORT</td>
  1412. <td class="code"><pre>'8000'</pre></td>
  1413. </tr>
  1414.  
  1415. <tr>
  1416. <td>SERVER_PROTOCOL</td>
  1417. <td class="code"><pre>'HTTP/1.1'</pre></td>
  1418. </tr>
  1419.  
  1420. <tr>
  1421. <td>SERVER_SOFTWARE</td>
  1422. <td class="code"><pre>'WSGIServer/0.2'</pre></td>
  1423. </tr>
  1424.  
  1425. <tr>
  1426. <td>SESSIONNAME</td>
  1427. <td class="code"><pre>'Console'</pre></td>
  1428. </tr>
  1429.  
  1430. <tr>
  1431. <td>SYSTEMDRIVE</td>
  1432. <td class="code"><pre>'C:'</pre></td>
  1433. </tr>
  1434.  
  1435. <tr>
  1436. <td>SYSTEMROOT</td>
  1437. <td class="code"><pre>'C:\\WINDOWS'</pre></td>
  1438. </tr>
  1439.  
  1440. <tr>
  1441. <td>TEMP</td>
  1442. <td class="code"><pre>'C:\\Users\\Tiago\\AppData\\Local\\Temp'</pre></td>
  1443. </tr>
  1444.  
  1445. <tr>
  1446. <td>TMP</td>
  1447. <td class="code"><pre>'C:\\Users\\Tiago\\AppData\\Local\\Temp'</pre></td>
  1448. </tr>
  1449.  
  1450. <tr>
  1451. <td>USERDOMAIN</td>
  1452. <td class="code"><pre>'DESKTOP-PKHSSI9'</pre></td>
  1453. </tr>
  1454.  
  1455. <tr>
  1456. <td>USERDOMAIN_ROAMINGPROFILE</td>
  1457. <td class="code"><pre>'DESKTOP-PKHSSI9'</pre></td>
  1458. </tr>
  1459.  
  1460. <tr>
  1461. <td>USERNAME</td>
  1462. <td class="code"><pre>'Tiago'</pre></td>
  1463. </tr>
  1464.  
  1465. <tr>
  1466. <td>USERPROFILE</td>
  1467. <td class="code"><pre>'C:\\Users\\Tiago'</pre></td>
  1468. </tr>
  1469.  
  1470. <tr>
  1471. <td>WINDIR</td>
  1472. <td class="code"><pre>'C:\\WINDOWS'</pre></td>
  1473. </tr>
  1474.  
  1475. <tr>
  1476. <td>wsgi.errors</td>
  1477. <td class="code"><pre>&lt;_io.TextIOWrapper name='&lt;stderr&gt;' mode='w' encoding='utf-8'&gt;</pre></td>
  1478. </tr>
  1479.  
  1480. <tr>
  1481. <td>wsgi.file_wrapper</td>
  1482. <td class="code"><pre>''</pre></td>
  1483. </tr>
  1484.  
  1485. <tr>
  1486. <td>wsgi.input</td>
  1487. <td class="code"><pre>&lt;_io.BufferedReader name=1484&gt;</pre></td>
  1488. </tr>
  1489.  
  1490. <tr>
  1491. <td>wsgi.multiprocess</td>
  1492. <td class="code"><pre>False</pre></td>
  1493. </tr>
  1494.  
  1495. <tr>
  1496. <td>wsgi.multithread</td>
  1497. <td class="code"><pre>True</pre></td>
  1498. </tr>
  1499.  
  1500. <tr>
  1501. <td>wsgi.run_once</td>
  1502. <td class="code"><pre>False</pre></td>
  1503. </tr>
  1504.  
  1505. <tr>
  1506. <td>wsgi.url_scheme</td>
  1507. <td class="code"><pre>'http'</pre></td>
  1508. </tr>
  1509.  
  1510. <tr>
  1511. <td>wsgi.version</td>
  1512. <td class="code"><pre>(1, 0)</pre></td>
  1513. </tr>
  1514.  
  1515. </tbody>
  1516. </table>
  1517.  
  1518.  
  1519. <h3 id="settings-info">Settings</h3>
  1520. <h4>Using settings module <code>FenixAuthDemo.settings</code></h4>
  1521. <table class="req">
  1522. <thead>
  1523. <tr>
  1524. <th>Setting</th>
  1525. <th>Value</th>
  1526. </tr>
  1527. </thead>
  1528. <tbody>
  1529.  
  1530. <tr>
  1531. <td>ABSOLUTE_URL_OVERRIDES</td>
  1532. <td class="code"><pre>{}</pre></td>
  1533. </tr>
  1534.  
  1535. <tr>
  1536. <td>ADMINS</td>
  1537. <td class="code"><pre>[]</pre></td>
  1538. </tr>
  1539.  
  1540. <tr>
  1541. <td>ALLOWED_HOSTS</td>
  1542. <td class="code"><pre>[]</pre></td>
  1543. </tr>
  1544.  
  1545. <tr>
  1546. <td>APPEND_SLASH</td>
  1547. <td class="code"><pre>True</pre></td>
  1548. </tr>
  1549.  
  1550. <tr>
  1551. <td>AUTHENTICATION_BACKENDS</td>
  1552. <td class="code"><pre>('fenixedu.authentication.backend.FenixEduAuthenticationBackend',)</pre></td>
  1553. </tr>
  1554.  
  1555. <tr>
  1556. <td>AUTH_PASSWORD_VALIDATORS</td>
  1557. <td class="code"><pre>'********************'</pre></td>
  1558. </tr>
  1559.  
  1560. <tr>
  1561. <td>AUTH_USER_MODEL</td>
  1562. <td class="code"><pre>'auth.User'</pre></td>
  1563. </tr>
  1564.  
  1565. <tr>
  1566. <td>BASE_DIR</td>
  1567. <td class="code"><pre>'C:\\Users\\Tiago\\Desktop\\FenixEdu-Django-Auth-Demo-master'</pre></td>
  1568. </tr>
  1569.  
  1570. <tr>
  1571. <td>CACHES</td>
  1572. <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
  1573. </tr>
  1574.  
  1575. <tr>
  1576. <td>CACHE_MIDDLEWARE_ALIAS</td>
  1577. <td class="code"><pre>'default'</pre></td>
  1578. </tr>
  1579.  
  1580. <tr>
  1581. <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
  1582. <td class="code"><pre>'********************'</pre></td>
  1583. </tr>
  1584.  
  1585. <tr>
  1586. <td>CACHE_MIDDLEWARE_SECONDS</td>
  1587. <td class="code"><pre>600</pre></td>
  1588. </tr>
  1589.  
  1590. <tr>
  1591. <td>CSRF_COOKIE_AGE</td>
  1592. <td class="code"><pre>31449600</pre></td>
  1593. </tr>
  1594.  
  1595. <tr>
  1596. <td>CSRF_COOKIE_DOMAIN</td>
  1597. <td class="code"><pre>None</pre></td>
  1598. </tr>
  1599.  
  1600. <tr>
  1601. <td>CSRF_COOKIE_HTTPONLY</td>
  1602. <td class="code"><pre>False</pre></td>
  1603. </tr>
  1604.  
  1605. <tr>
  1606. <td>CSRF_COOKIE_NAME</td>
  1607. <td class="code"><pre>'csrftoken'</pre></td>
  1608. </tr>
  1609.  
  1610. <tr>
  1611. <td>CSRF_COOKIE_PATH</td>
  1612. <td class="code"><pre>'/'</pre></td>
  1613. </tr>
  1614.  
  1615. <tr>
  1616. <td>CSRF_COOKIE_SECURE</td>
  1617. <td class="code"><pre>False</pre></td>
  1618. </tr>
  1619.  
  1620. <tr>
  1621. <td>CSRF_FAILURE_VIEW</td>
  1622. <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
  1623. </tr>
  1624.  
  1625. <tr>
  1626. <td>CSRF_HEADER_NAME</td>
  1627. <td class="code"><pre>'HTTP_X_CSRFTOKEN'</pre></td>
  1628. </tr>
  1629.  
  1630. <tr>
  1631. <td>CSRF_TRUSTED_ORIGINS</td>
  1632. <td class="code"><pre>[]</pre></td>
  1633. </tr>
  1634.  
  1635. <tr>
  1636. <td>CSRF_USE_SESSIONS</td>
  1637. <td class="code"><pre>False</pre></td>
  1638. </tr>
  1639.  
  1640. <tr>
  1641. <td>DATABASES</td>
  1642. <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
  1643. 'AUTOCOMMIT': True,
  1644. 'CONN_MAX_AGE': 0,
  1645. 'ENGINE': 'django.db.backends.sqlite3',
  1646. 'HOST': '',
  1647. 'NAME': 'C:\\Users\\Tiago\\Desktop\\FenixEdu-Django-Auth-Demo-master\\db.sqlite3',
  1648. 'OPTIONS': {},
  1649. 'PASSWORD': '********************',
  1650. 'PORT': '',
  1651. 'TEST': {'CHARSET': None,
  1652. 'COLLATION': None,
  1653. 'MIRROR': None,
  1654. 'NAME': None},
  1655. 'TIME_ZONE': None,
  1656. 'USER': ''}}</pre></td>
  1657. </tr>
  1658.  
  1659. <tr>
  1660. <td>DATABASE_ROUTERS</td>
  1661. <td class="code"><pre>[]</pre></td>
  1662. </tr>
  1663.  
  1664. <tr>
  1665. <td>DATA_UPLOAD_MAX_MEMORY_SIZE</td>
  1666. <td class="code"><pre>2621440</pre></td>
  1667. </tr>
  1668.  
  1669. <tr>
  1670. <td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td>
  1671. <td class="code"><pre>1000</pre></td>
  1672. </tr>
  1673.  
  1674. <tr>
  1675. <td>DATETIME_FORMAT</td>
  1676. <td class="code"><pre>'N j, Y, P'</pre></td>
  1677. </tr>
  1678.  
  1679. <tr>
  1680. <td>DATETIME_INPUT_FORMATS</td>
  1681. <td class="code"><pre>['%Y-%m-%d %H:%M:%S',
  1682. '%Y-%m-%d %H:%M:%S.%f',
  1683. '%Y-%m-%d %H:%M',
  1684. '%Y-%m-%d',
  1685. '%m/%d/%Y %H:%M:%S',
  1686. '%m/%d/%Y %H:%M:%S.%f',
  1687. '%m/%d/%Y %H:%M',
  1688. '%m/%d/%Y',
  1689. '%m/%d/%y %H:%M:%S',
  1690. '%m/%d/%y %H:%M:%S.%f',
  1691. '%m/%d/%y %H:%M',
  1692. '%m/%d/%y']</pre></td>
  1693. </tr>
  1694.  
  1695. <tr>
  1696. <td>DATE_FORMAT</td>
  1697. <td class="code"><pre>'N j, Y'</pre></td>
  1698. </tr>
  1699.  
  1700. <tr>
  1701. <td>DATE_INPUT_FORMATS</td>
  1702. <td class="code"><pre>['%Y-%m-%d',
  1703. '%m/%d/%Y',
  1704. '%m/%d/%y',
  1705. '%b %d %Y',
  1706. '%b %d, %Y',
  1707. '%d %b %Y',
  1708. '%d %b, %Y',
  1709. '%B %d %Y',
  1710. '%B %d, %Y',
  1711. '%d %B %Y',
  1712. '%d %B, %Y']</pre></td>
  1713. </tr>
  1714.  
  1715. <tr>
  1716. <td>DEBUG</td>
  1717. <td class="code"><pre>True</pre></td>
  1718. </tr>
  1719.  
  1720. <tr>
  1721. <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
  1722. <td class="code"><pre>False</pre></td>
  1723. </tr>
  1724.  
  1725. <tr>
  1726. <td>DECIMAL_SEPARATOR</td>
  1727. <td class="code"><pre>'.'</pre></td>
  1728. </tr>
  1729.  
  1730. <tr>
  1731. <td>DEFAULT_CHARSET</td>
  1732. <td class="code"><pre>'utf-8'</pre></td>
  1733. </tr>
  1734.  
  1735. <tr>
  1736. <td>DEFAULT_CONTENT_TYPE</td>
  1737. <td class="code"><pre>'text/html'</pre></td>
  1738. </tr>
  1739.  
  1740. <tr>
  1741. <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
  1742. <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
  1743. </tr>
  1744.  
  1745. <tr>
  1746. <td>DEFAULT_FILE_STORAGE</td>
  1747. <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
  1748. </tr>
  1749.  
  1750. <tr>
  1751. <td>DEFAULT_FROM_EMAIL</td>
  1752. <td class="code"><pre>'webmaster@localhost'</pre></td>
  1753. </tr>
  1754.  
  1755. <tr>
  1756. <td>DEFAULT_INDEX_TABLESPACE</td>
  1757. <td class="code"><pre>''</pre></td>
  1758. </tr>
  1759.  
  1760. <tr>
  1761. <td>DEFAULT_TABLESPACE</td>
  1762. <td class="code"><pre>''</pre></td>
  1763. </tr>
  1764.  
  1765. <tr>
  1766. <td>DISALLOWED_USER_AGENTS</td>
  1767. <td class="code"><pre>[]</pre></td>
  1768. </tr>
  1769.  
  1770. <tr>
  1771. <td>EMAIL_BACKEND</td>
  1772. <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
  1773. </tr>
  1774.  
  1775. <tr>
  1776. <td>EMAIL_HOST</td>
  1777. <td class="code"><pre>'localhost'</pre></td>
  1778. </tr>
  1779.  
  1780. <tr>
  1781. <td>EMAIL_HOST_PASSWORD</td>
  1782. <td class="code"><pre>'********************'</pre></td>
  1783. </tr>
  1784.  
  1785. <tr>
  1786. <td>EMAIL_HOST_USER</td>
  1787. <td class="code"><pre>''</pre></td>
  1788. </tr>
  1789.  
  1790. <tr>
  1791. <td>EMAIL_PORT</td>
  1792. <td class="code"><pre>25</pre></td>
  1793. </tr>
  1794.  
  1795. <tr>
  1796. <td>EMAIL_SSL_CERTFILE</td>
  1797. <td class="code"><pre>None</pre></td>
  1798. </tr>
  1799.  
  1800. <tr>
  1801. <td>EMAIL_SSL_KEYFILE</td>
  1802. <td class="code"><pre>'********************'</pre></td>
  1803. </tr>
  1804.  
  1805. <tr>
  1806. <td>EMAIL_SUBJECT_PREFIX</td>
  1807. <td class="code"><pre>'[Django] '</pre></td>
  1808. </tr>
  1809.  
  1810. <tr>
  1811. <td>EMAIL_TIMEOUT</td>
  1812. <td class="code"><pre>None</pre></td>
  1813. </tr>
  1814.  
  1815. <tr>
  1816. <td>EMAIL_USE_LOCALTIME</td>
  1817. <td class="code"><pre>False</pre></td>
  1818. </tr>
  1819.  
  1820. <tr>
  1821. <td>EMAIL_USE_SSL</td>
  1822. <td class="code"><pre>False</pre></td>
  1823. </tr>
  1824.  
  1825. <tr>
  1826. <td>EMAIL_USE_TLS</td>
  1827. <td class="code"><pre>False</pre></td>
  1828. </tr>
  1829.  
  1830. <tr>
  1831. <td>FENIXEDU_BASE_URL</td>
  1832. <td class="code"><pre>'https://fenix.tecnico.ulisboa.pt/'</pre></td>
  1833. </tr>
  1834.  
  1835. <tr>
  1836. <td>FENIXEDU_CLIENT_ID</td>
  1837. <td class="code"><pre>'288540197912630'</pre></td>
  1838. </tr>
  1839.  
  1840. <tr>
  1841. <td>FENIXEDU_CLIENT_SECRET</td>
  1842. <td class="code"><pre>'********************'</pre></td>
  1843. </tr>
  1844.  
  1845. <tr>
  1846. <td>FENIXEDU_REDIRECT_URI</td>
  1847. <td class="code"><pre>'http://localhost:8000/fenixAuthHandler/'</pre></td>
  1848. </tr>
  1849.  
  1850. <tr>
  1851. <td>FILE_CHARSET</td>
  1852. <td class="code"><pre>'utf-8'</pre></td>
  1853. </tr>
  1854.  
  1855. <tr>
  1856. <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
  1857. <td class="code"><pre>None</pre></td>
  1858. </tr>
  1859.  
  1860. <tr>
  1861. <td>FILE_UPLOAD_HANDLERS</td>
  1862. <td class="code"><pre>['django.core.files.uploadhandler.MemoryFileUploadHandler',
  1863. 'django.core.files.uploadhandler.TemporaryFileUploadHandler']</pre></td>
  1864. </tr>
  1865.  
  1866. <tr>
  1867. <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
  1868. <td class="code"><pre>2621440</pre></td>
  1869. </tr>
  1870.  
  1871. <tr>
  1872. <td>FILE_UPLOAD_PERMISSIONS</td>
  1873. <td class="code"><pre>None</pre></td>
  1874. </tr>
  1875.  
  1876. <tr>
  1877. <td>FILE_UPLOAD_TEMP_DIR</td>
  1878. <td class="code"><pre>None</pre></td>
  1879. </tr>
  1880.  
  1881. <tr>
  1882. <td>FIRST_DAY_OF_WEEK</td>
  1883. <td class="code"><pre>0</pre></td>
  1884. </tr>
  1885.  
  1886. <tr>
  1887. <td>FIXTURE_DIRS</td>
  1888. <td class="code"><pre>[]</pre></td>
  1889. </tr>
  1890.  
  1891. <tr>
  1892. <td>FORCE_SCRIPT_NAME</td>
  1893. <td class="code"><pre>None</pre></td>
  1894. </tr>
  1895.  
  1896. <tr>
  1897. <td>FORMAT_MODULE_PATH</td>
  1898. <td class="code"><pre>None</pre></td>
  1899. </tr>
  1900.  
  1901. <tr>
  1902. <td>FORM_RENDERER</td>
  1903. <td class="code"><pre>'django.forms.renderers.DjangoTemplates'</pre></td>
  1904. </tr>
  1905.  
  1906. <tr>
  1907. <td>IGNORABLE_404_URLS</td>
  1908. <td class="code"><pre>[]</pre></td>
  1909. </tr>
  1910.  
  1911. <tr>
  1912. <td>INSTALLED_APPS</td>
  1913. <td class="code"><pre>['django.contrib.admin',
  1914. 'django.contrib.auth',
  1915. 'django.contrib.contenttypes',
  1916. 'django.contrib.sessions',
  1917. 'django.contrib.messages',
  1918. 'django.contrib.staticfiles']</pre></td>
  1919. </tr>
  1920.  
  1921. <tr>
  1922. <td>INTERNAL_IPS</td>
  1923. <td class="code"><pre>[]</pre></td>
  1924. </tr>
  1925.  
  1926. <tr>
  1927. <td>LANGUAGES</td>
  1928. <td class="code"><pre>[('af', 'Afrikaans'),
  1929. ('ar', 'Arabic'),
  1930. ('ast', 'Asturian'),
  1931. ('az', 'Azerbaijani'),
  1932. ('bg', 'Bulgarian'),
  1933. ('be', 'Belarusian'),
  1934. ('bn', 'Bengali'),
  1935. ('br', 'Breton'),
  1936. ('bs', 'Bosnian'),
  1937. ('ca', 'Catalan'),
  1938. ('cs', 'Czech'),
  1939. ('cy', 'Welsh'),
  1940. ('da', 'Danish'),
  1941. ('de', 'German'),
  1942. ('dsb', 'Lower Sorbian'),
  1943. ('el', 'Greek'),
  1944. ('en', 'English'),
  1945. ('en-au', 'Australian English'),
  1946. ('en-gb', 'British English'),
  1947. ('eo', 'Esperanto'),
  1948. ('es', 'Spanish'),
  1949. ('es-ar', 'Argentinian Spanish'),
  1950. ('es-co', 'Colombian Spanish'),
  1951. ('es-mx', 'Mexican Spanish'),
  1952. ('es-ni', 'Nicaraguan Spanish'),
  1953. ('es-ve', 'Venezuelan Spanish'),
  1954. ('et', 'Estonian'),
  1955. ('eu', 'Basque'),
  1956. ('fa', 'Persian'),
  1957. ('fi', 'Finnish'),
  1958. ('fr', 'French'),
  1959. ('fy', 'Frisian'),
  1960. ('ga', 'Irish'),
  1961. ('gd', 'Scottish Gaelic'),
  1962. ('gl', 'Galician'),
  1963. ('he', 'Hebrew'),
  1964. ('hi', 'Hindi'),
  1965. ('hr', 'Croatian'),
  1966. ('hsb', 'Upper Sorbian'),
  1967. ('hu', 'Hungarian'),
  1968. ('ia', 'Interlingua'),
  1969. ('id', 'Indonesian'),
  1970. ('io', 'Ido'),
  1971. ('is', 'Icelandic'),
  1972. ('it', 'Italian'),
  1973. ('ja', 'Japanese'),
  1974. ('ka', 'Georgian'),
  1975. ('kk', 'Kazakh'),
  1976. ('km', 'Khmer'),
  1977. ('kn', 'Kannada'),
  1978. ('ko', 'Korean'),
  1979. ('lb', 'Luxembourgish'),
  1980. ('lt', 'Lithuanian'),
  1981. ('lv', 'Latvian'),
  1982. ('mk', 'Macedonian'),
  1983. ('ml', 'Malayalam'),
  1984. ('mn', 'Mongolian'),
  1985. ('mr', 'Marathi'),
  1986. ('my', 'Burmese'),
  1987. ('nb', 'Norwegian Bokmål'),
  1988. ('ne', 'Nepali'),
  1989. ('nl', 'Dutch'),
  1990. ('nn', 'Norwegian Nynorsk'),
  1991. ('os', 'Ossetic'),
  1992. ('pa', 'Punjabi'),
  1993. ('pl', 'Polish'),
  1994. ('pt', 'Portuguese'),
  1995. ('pt-br', 'Brazilian Portuguese'),
  1996. ('ro', 'Romanian'),
  1997. ('ru', 'Russian'),
  1998. ('sk', 'Slovak'),
  1999. ('sl', 'Slovenian'),
  2000. ('sq', 'Albanian'),
  2001. ('sr', 'Serbian'),
  2002. ('sr-latn', 'Serbian Latin'),
  2003. ('sv', 'Swedish'),
  2004. ('sw', 'Swahili'),
  2005. ('ta', 'Tamil'),
  2006. ('te', 'Telugu'),
  2007. ('th', 'Thai'),
  2008. ('tr', 'Turkish'),
  2009. ('tt', 'Tatar'),
  2010. ('udm', 'Udmurt'),
  2011. ('uk', 'Ukrainian'),
  2012. ('ur', 'Urdu'),
  2013. ('vi', 'Vietnamese'),
  2014. ('zh-hans', 'Simplified Chinese'),
  2015. ('zh-hant', 'Traditional Chinese')]</pre></td>
  2016. </tr>
  2017.  
  2018. <tr>
  2019. <td>LANGUAGES_BIDI</td>
  2020. <td class="code"><pre>['he', 'ar', 'fa', 'ur']</pre></td>
  2021. </tr>
  2022.  
  2023. <tr>
  2024. <td>LANGUAGE_CODE</td>
  2025. <td class="code"><pre>'en-us'</pre></td>
  2026. </tr>
  2027.  
  2028. <tr>
  2029. <td>LANGUAGE_COOKIE_AGE</td>
  2030. <td class="code"><pre>None</pre></td>
  2031. </tr>
  2032.  
  2033. <tr>
  2034. <td>LANGUAGE_COOKIE_DOMAIN</td>
  2035. <td class="code"><pre>None</pre></td>
  2036. </tr>
  2037.  
  2038. <tr>
  2039. <td>LANGUAGE_COOKIE_NAME</td>
  2040. <td class="code"><pre>'django_language'</pre></td>
  2041. </tr>
  2042.  
  2043. <tr>
  2044. <td>LANGUAGE_COOKIE_PATH</td>
  2045. <td class="code"><pre>'/'</pre></td>
  2046. </tr>
  2047.  
  2048. <tr>
  2049. <td>LOCALE_PATHS</td>
  2050. <td class="code"><pre>[]</pre></td>
  2051. </tr>
  2052.  
  2053. <tr>
  2054. <td>LOGGING</td>
  2055. <td class="code"><pre>{}</pre></td>
  2056. </tr>
  2057.  
  2058. <tr>
  2059. <td>LOGGING_CONFIG</td>
  2060. <td class="code"><pre>'logging.config.dictConfig'</pre></td>
  2061. </tr>
  2062.  
  2063. <tr>
  2064. <td>LOGIN_REDIRECT_URL</td>
  2065. <td class="code"><pre>'/accounts/profile/'</pre></td>
  2066. </tr>
  2067.  
  2068. <tr>
  2069. <td>LOGIN_URL</td>
  2070. <td class="code"><pre>'/accounts/login/'</pre></td>
  2071. </tr>
  2072.  
  2073. <tr>
  2074. <td>LOGOUT_REDIRECT_URL</td>
  2075. <td class="code"><pre>None</pre></td>
  2076. </tr>
  2077.  
  2078. <tr>
  2079. <td>MANAGERS</td>
  2080. <td class="code"><pre>[]</pre></td>
  2081. </tr>
  2082.  
  2083. <tr>
  2084. <td>MEDIA_ROOT</td>
  2085. <td class="code"><pre>''</pre></td>
  2086. </tr>
  2087.  
  2088. <tr>
  2089. <td>MEDIA_URL</td>
  2090. <td class="code"><pre>''</pre></td>
  2091. </tr>
  2092.  
  2093. <tr>
  2094. <td>MESSAGE_STORAGE</td>
  2095. <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
  2096. </tr>
  2097.  
  2098. <tr>
  2099. <td>MIDDLEWARE</td>
  2100. <td class="code"><pre>['django.middleware.security.SecurityMiddleware',
  2101. 'django.contrib.sessions.middleware.SessionMiddleware',
  2102. 'django.middleware.common.CommonMiddleware',
  2103. 'django.middleware.csrf.CsrfViewMiddleware',
  2104. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  2105. 'django.contrib.messages.middleware.MessageMiddleware',
  2106. 'django.middleware.clickjacking.XFrameOptionsMiddleware']</pre></td>
  2107. </tr>
  2108.  
  2109. <tr>
  2110. <td>MIDDLEWARE_CLASSES</td>
  2111. <td class="code"><pre>['django.middleware.common.CommonMiddleware',
  2112. 'django.middleware.csrf.CsrfViewMiddleware']</pre></td>
  2113. </tr>
  2114.  
  2115. <tr>
  2116. <td>MIGRATION_MODULES</td>
  2117. <td class="code"><pre>{}</pre></td>
  2118. </tr>
  2119.  
  2120. <tr>
  2121. <td>MONTH_DAY_FORMAT</td>
  2122. <td class="code"><pre>'F j'</pre></td>
  2123. </tr>
  2124.  
  2125. <tr>
  2126. <td>NUMBER_GROUPING</td>
  2127. <td class="code"><pre>0</pre></td>
  2128. </tr>
  2129.  
  2130. <tr>
  2131. <td>PASSWORD_HASHERS</td>
  2132. <td class="code"><pre>'********************'</pre></td>
  2133. </tr>
  2134.  
  2135. <tr>
  2136. <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
  2137. <td class="code"><pre>'********************'</pre></td>
  2138. </tr>
  2139.  
  2140. <tr>
  2141. <td>PREPEND_WWW</td>
  2142. <td class="code"><pre>False</pre></td>
  2143. </tr>
  2144.  
  2145. <tr>
  2146. <td>ROOT_URLCONF</td>
  2147. <td class="code"><pre>'FenixAuthDemo.urls'</pre></td>
  2148. </tr>
  2149.  
  2150. <tr>
  2151. <td>SECRET_KEY</td>
  2152. <td class="code"><pre>'********************'</pre></td>
  2153. </tr>
  2154.  
  2155. <tr>
  2156. <td>SECURE_BROWSER_XSS_FILTER</td>
  2157. <td class="code"><pre>False</pre></td>
  2158. </tr>
  2159.  
  2160. <tr>
  2161. <td>SECURE_CONTENT_TYPE_NOSNIFF</td>
  2162. <td class="code"><pre>False</pre></td>
  2163. </tr>
  2164.  
  2165. <tr>
  2166. <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>
  2167. <td class="code"><pre>False</pre></td>
  2168. </tr>
  2169.  
  2170. <tr>
  2171. <td>SECURE_HSTS_PRELOAD</td>
  2172. <td class="code"><pre>False</pre></td>
  2173. </tr>
  2174.  
  2175. <tr>
  2176. <td>SECURE_HSTS_SECONDS</td>
  2177. <td class="code"><pre>0</pre></td>
  2178. </tr>
  2179.  
  2180. <tr>
  2181. <td>SECURE_PROXY_SSL_HEADER</td>
  2182. <td class="code"><pre>None</pre></td>
  2183. </tr>
  2184.  
  2185. <tr>
  2186. <td>SECURE_REDIRECT_EXEMPT</td>
  2187. <td class="code"><pre>[]</pre></td>
  2188. </tr>
  2189.  
  2190. <tr>
  2191. <td>SECURE_SSL_HOST</td>
  2192. <td class="code"><pre>None</pre></td>
  2193. </tr>
  2194.  
  2195. <tr>
  2196. <td>SECURE_SSL_REDIRECT</td>
  2197. <td class="code"><pre>False</pre></td>
  2198. </tr>
  2199.  
  2200. <tr>
  2201. <td>SERVER_EMAIL</td>
  2202. <td class="code"><pre>'root@localhost'</pre></td>
  2203. </tr>
  2204.  
  2205. <tr>
  2206. <td>SESSION_CACHE_ALIAS</td>
  2207. <td class="code"><pre>'default'</pre></td>
  2208. </tr>
  2209.  
  2210. <tr>
  2211. <td>SESSION_COOKIE_AGE</td>
  2212. <td class="code"><pre>1209600</pre></td>
  2213. </tr>
  2214.  
  2215. <tr>
  2216. <td>SESSION_COOKIE_DOMAIN</td>
  2217. <td class="code"><pre>None</pre></td>
  2218. </tr>
  2219.  
  2220. <tr>
  2221. <td>SESSION_COOKIE_HTTPONLY</td>
  2222. <td class="code"><pre>True</pre></td>
  2223. </tr>
  2224.  
  2225. <tr>
  2226. <td>SESSION_COOKIE_NAME</td>
  2227. <td class="code"><pre>'sessionid'</pre></td>
  2228. </tr>
  2229.  
  2230. <tr>
  2231. <td>SESSION_COOKIE_PATH</td>
  2232. <td class="code"><pre>'/'</pre></td>
  2233. </tr>
  2234.  
  2235. <tr>
  2236. <td>SESSION_COOKIE_SECURE</td>
  2237. <td class="code"><pre>False</pre></td>
  2238. </tr>
  2239.  
  2240. <tr>
  2241. <td>SESSION_ENGINE</td>
  2242. <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
  2243. </tr>
  2244.  
  2245. <tr>
  2246. <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
  2247. <td class="code"><pre>False</pre></td>
  2248. </tr>
  2249.  
  2250. <tr>
  2251. <td>SESSION_FILE_PATH</td>
  2252. <td class="code"><pre>None</pre></td>
  2253. </tr>
  2254.  
  2255. <tr>
  2256. <td>SESSION_SAVE_EVERY_REQUEST</td>
  2257. <td class="code"><pre>False</pre></td>
  2258. </tr>
  2259.  
  2260. <tr>
  2261. <td>SESSION_SERIALIZER</td>
  2262. <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
  2263. </tr>
  2264.  
  2265. <tr>
  2266. <td>SETTINGS_MODULE</td>
  2267. <td class="code"><pre>'FenixAuthDemo.settings'</pre></td>
  2268. </tr>
  2269.  
  2270. <tr>
  2271. <td>SHORT_DATETIME_FORMAT</td>
  2272. <td class="code"><pre>'m/d/Y P'</pre></td>
  2273. </tr>
  2274.  
  2275. <tr>
  2276. <td>SHORT_DATE_FORMAT</td>
  2277. <td class="code"><pre>'m/d/Y'</pre></td>
  2278. </tr>
  2279.  
  2280. <tr>
  2281. <td>SIGNING_BACKEND</td>
  2282. <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
  2283. </tr>
  2284.  
  2285. <tr>
  2286. <td>SILENCED_SYSTEM_CHECKS</td>
  2287. <td class="code"><pre>[]</pre></td>
  2288. </tr>
  2289.  
  2290. <tr>
  2291. <td>STATICFILES_DIRS</td>
  2292. <td class="code"><pre>[]</pre></td>
  2293. </tr>
  2294.  
  2295. <tr>
  2296. <td>STATICFILES_FINDERS</td>
  2297. <td class="code"><pre>['django.contrib.staticfiles.finders.FileSystemFinder',
  2298. 'django.contrib.staticfiles.finders.AppDirectoriesFinder']</pre></td>
  2299. </tr>
  2300.  
  2301. <tr>
  2302. <td>STATICFILES_STORAGE</td>
  2303. <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
  2304. </tr>
  2305.  
  2306. <tr>
  2307. <td>STATIC_ROOT</td>
  2308. <td class="code"><pre>None</pre></td>
  2309. </tr>
  2310.  
  2311. <tr>
  2312. <td>STATIC_URL</td>
  2313. <td class="code"><pre>'/static/'</pre></td>
  2314. </tr>
  2315.  
  2316. <tr>
  2317. <td>TEMPLATES</td>
  2318. <td class="code"><pre>[{'APP_DIRS': True,
  2319. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  2320. 'DIRS': [],
  2321. 'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
  2322. 'django.template.context_processors.request',
  2323. 'django.contrib.auth.context_processors.auth',
  2324. 'django.contrib.messages.context_processors.messages']}}]</pre></td>
  2325. </tr>
  2326.  
  2327. <tr>
  2328. <td>TEST_NON_SERIALIZED_APPS</td>
  2329. <td class="code"><pre>[]</pre></td>
  2330. </tr>
  2331.  
  2332. <tr>
  2333. <td>TEST_RUNNER</td>
  2334. <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
  2335. </tr>
  2336.  
  2337. <tr>
  2338. <td>THOUSAND_SEPARATOR</td>
  2339. <td class="code"><pre>','</pre></td>
  2340. </tr>
  2341.  
  2342. <tr>
  2343. <td>TIME_FORMAT</td>
  2344. <td class="code"><pre>'P'</pre></td>
  2345. </tr>
  2346.  
  2347. <tr>
  2348. <td>TIME_INPUT_FORMATS</td>
  2349. <td class="code"><pre>['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']</pre></td>
  2350. </tr>
  2351.  
  2352. <tr>
  2353. <td>TIME_ZONE</td>
  2354. <td class="code"><pre>'UTC'</pre></td>
  2355. </tr>
  2356.  
  2357. <tr>
  2358. <td>USE_ETAGS</td>
  2359. <td class="code"><pre>False</pre></td>
  2360. </tr>
  2361.  
  2362. <tr>
  2363. <td>USE_I18N</td>
  2364. <td class="code"><pre>True</pre></td>
  2365. </tr>
  2366.  
  2367. <tr>
  2368. <td>USE_L10N</td>
  2369. <td class="code"><pre>True</pre></td>
  2370. </tr>
  2371.  
  2372. <tr>
  2373. <td>USE_THOUSAND_SEPARATOR</td>
  2374. <td class="code"><pre>False</pre></td>
  2375. </tr>
  2376.  
  2377. <tr>
  2378. <td>USE_TZ</td>
  2379. <td class="code"><pre>True</pre></td>
  2380. </tr>
  2381.  
  2382. <tr>
  2383. <td>USE_X_FORWARDED_HOST</td>
  2384. <td class="code"><pre>False</pre></td>
  2385. </tr>
  2386.  
  2387. <tr>
  2388. <td>USE_X_FORWARDED_PORT</td>
  2389. <td class="code"><pre>False</pre></td>
  2390. </tr>
  2391.  
  2392. <tr>
  2393. <td>WSGI_APPLICATION</td>
  2394. <td class="code"><pre>'FenixAuthDemo.wsgi.application'</pre></td>
  2395. </tr>
  2396.  
  2397. <tr>
  2398. <td>X_FRAME_OPTIONS</td>
  2399. <td class="code"><pre>'SAMEORIGIN'</pre></td>
  2400. </tr>
  2401.  
  2402. <tr>
  2403. <td>YEAR_MONTH_FORMAT</td>
  2404. <td class="code"><pre>'F Y'</pre></td>
  2405. </tr>
  2406.  
  2407. </tbody>
  2408. </table>
  2409.  
  2410. </div>
  2411.  
  2412. <div id="explanation">
  2413. <p>
  2414. You're seeing this error because you have <code>DEBUG = True</code> in your
  2415. Django settings file. Change that to <code>False</code>, and Django will
  2416. display a standard page generated by the handler for this status code.
  2417. </p>
  2418. </div>
  2419.  
  2420.  
  2421.  
  2422. </body></html>
Add Comment
Please, Sign In to add comment