<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title>Authentication — FitTrackee 0.3.0-beta documentation</title> <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" type="text/css" href="../_static/custom.css" /> <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/language_data.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="Records" href="records.html" /> <link rel="prev" title="Activities" href="activities.html" /> <meta charset='utf-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'> <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'> <meta name="apple-mobile-web-app-capable" content="yes"> <script type="text/javascript" src="../_static/js/jquery-1.11.0.min.js "></script> <script type="text/javascript" src="../_static/js/jquery-fix.js "></script> <script type="text/javascript" src="../_static/bootstrap-3.3.7/js/bootstrap.min.js "></script> <script type="text/javascript" src="../_static/bootstrap-sphinx.js "></script> </head><body> <div id="navbar" class="navbar navbar-default navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <!-- .btn-navbar is used as the toggle for collapsed navbar content --> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="../index.html"> FitTrackee</a> <span class="navbar-text navbar-version pull-left"><b>0.3.0</b></span> </div> <div class="collapse navbar-collapse nav-collapse"> <ul class="nav navbar-nav"> <li><a href="https://github.com/SamR1/FitTrackee">GitHub</a></li> <li class="dropdown globaltoc-container"> <a role="button" id="dLabelGlobalToc" data-toggle="dropdown" data-target="#" href="../index.html">Docs <b class="caret"></b></a> <ul class="dropdown-menu globaltoc" role="menu" aria-labelledby="dLabelGlobalToc"><ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li> <li class="toctree-l1 current"><a class="reference internal" href="index.html">API documentation</a></li> <li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li> <li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li> </ul> </ul> </li> <li class="dropdown"> <a role="button" id="dLabelLocalToc" data-toggle="dropdown" data-target="#" href="#">Page <b class="caret"></b></a> <ul class="dropdown-menu localtoc" role="menu" aria-labelledby="dLabelLocalToc"><ul> <li><a class="reference internal" href="#">Authentication</a></li> </ul> </ul> </li> <li> <a href="activities.html" title="Previous Chapter: Activities"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Activities</span> </a> </li> <li> <a href="records.html" title="Next Chapter: Records"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Records »</span> </a> </li> <li class="hidden-sm"> <div id="sourcelink"> <a href="../_sources/api/auth.rst.txt" rel="nofollow">Source</a> </div></li> </ul> <form class="navbar-form navbar-right" action="../search.html" method="get"> <div class="form-group"> <input type="text" name="q" class="form-control" placeholder="Search" /> </div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> </div> <div class="container"> <div class="row"> <div class="body col-md-12 content" role="main"> <div class="section" id="authentication"> <h1>Authentication<a class="headerlink" href="#authentication" title="Permalink to this headline">¶</a></h1> <dl class="post"> <dt id="post--api-auth-register"> <code class="sig-name descname">POST </code><code class="sig-name descname">/api/auth/register</code><a class="headerlink" href="#post--api-auth-register" title="Permalink to this definition">¶</a></dt> <dd><p>register a user</p> <p><strong>Example request</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/auth/register</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> </pre></div> </div> <p><strong>Example responses</strong>:</p> <ul class="simple"> <li><p>successful registration</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">CREATED</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"auth_token"</span><span class="p">:</span> <span class="s2">"JSON Web Token"</span><span class="p">,</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"Successfully registered."</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <ul class="simple"> <li><p>error on registration</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">400</span> <span class="ne">BAD REQUEST</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"Errors: Valid email must be provided.\n"</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"error"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Request JSON Object</dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>username</strong> (<em>string</em>) – user name (3 to 12 characters required)</p></li> <li><p><strong>email</strong> (<em>string</em>) – user email</p></li> <li><p><strong>password</strong> (<em>string</em>) – password (8 characters required)</p></li> <li><p><strong>password_conf</strong> (<em>string</em>) – password confirmation</p></li> </ul> </dd> <dt class="field-even">Status Codes</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Successfully registered.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – <ul> <li><p>Invalid payload.</p></li> <li><p>Sorry. That user already exists.</p></li> <li><dl class="simple"> <dt>Errors:</dt><dd><ul> <li><p>3 to 12 characters required for usernanme.</p></li> <li><p>Valid email must be provided.</p></li> <li><p>Password and password confirmation don’t match.</p></li> <li><p>8 characters required for password.</p></li> </ul> </dd> </dl> </li> </ul> </p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a> – Error. Registration is disabled.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a> – Error. Please try again or contact the administrator.</p></li> </ul> </dd> </dl> </dd></dl> <dl class="post"> <dt id="post--api-auth-login"> <code class="sig-name descname">POST </code><code class="sig-name descname">/api/auth/login</code><a class="headerlink" href="#post--api-auth-login" title="Permalink to this definition">¶</a></dt> <dd><p>user login</p> <p><strong>Example request</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/auth/login</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> </pre></div> </div> <p><strong>Example responses</strong>:</p> <ul class="simple"> <li><p>successful login</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"auth_token"</span><span class="p">:</span> <span class="s2">"JSON Web Token"</span><span class="p">,</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"Successfully logged in."</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <ul class="simple"> <li><p>error on login</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">404</span> <span class="ne">NOT FOUND</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"Invalid credentials."</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"error"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Request JSON Object</dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>email</strong> (<em>string</em>) – user email</p></li> <li><p><strong>password_conf</strong> (<em>string</em>) – password confirmation</p></li> </ul> </dd> <dt class="field-even">Status Codes</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successfully logged in.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Invalid credentials.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a> – Error. Please try again or contact the administrator.</p></li> </ul> </dd> </dl> </dd></dl> <dl class="get"> <dt id="get--api-auth-logout"> <code class="sig-name descname">GET </code><code class="sig-name descname">/api/auth/logout</code><a class="headerlink" href="#get--api-auth-logout" title="Permalink to this definition">¶</a></dt> <dd><p>user logout</p> <p><strong>Example request</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/auth/logout</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> </pre></div> </div> <p><strong>Example responses</strong>:</p> <ul class="simple"> <li><p>successful logout</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"Successfully logged out."</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <ul class="simple"> <li><p>error on login</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">401</span> <span class="ne">UNAUTHORIZED</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"Provide a valid auth token."</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"error"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Request Headers</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-even">Status Codes</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successfully logged out.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – Provide a valid auth token.</p></li> </ul> </dd> </dl> </dd></dl> <dl class="get"> <dt id="get--api-auth-profile"> <code class="sig-name descname">GET </code><code class="sig-name descname">/api/auth/profile</code><a class="headerlink" href="#get--api-auth-profile" title="Permalink to this definition">¶</a></dt> <dd><p>get authenticated user info</p> <p><strong>Example request</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/auth/profile</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> </pre></div> </div> <p><strong>Example response</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"admin"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="nt">"bio"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"birth_date"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"created_at"</span><span class="p">:</span> <span class="s2">"Sun, 14 Jul 2019 14:09:58 GMT"</span><span class="p">,</span> <span class="nt">"email"</span><span class="p">:</span> <span class="s2">"sam@example.com"</span><span class="p">,</span> <span class="nt">"first_name"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"id"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nt">"language"</span><span class="p">:</span> <span class="s2">"en"</span><span class="p">,</span> <span class="nt">"last_name"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"location"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"nb_activities"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span> <span class="nt">"nb_sports"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nt">"picture"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="nt">"timezone"</span><span class="p">:</span> <span class="s2">"Europe/Paris"</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mf">67.895</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="s2">"6:50:27"</span><span class="p">,</span> <span class="nt">"username"</span><span class="p">:</span> <span class="s2">"sam"</span><span class="p">,</span> <span class="nt">"weekm"</span><span class="p">:</span> <span class="kc">false</span> <span class="p">},</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Request Headers</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-even">Status Codes</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – success.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul> <li><p>Provide a valid auth token.</p></li> <li><p>Signature expired. Please log in again.</p></li> <li><p>Invalid token. Please log in again.</p></li> </ul> </p></li> </ul> </dd> </dl> </dd></dl> <dl class="post"> <dt id="post--api-auth-profile-edit"> <code class="sig-name descname">POST </code><code class="sig-name descname">/api/auth/profile/edit</code><a class="headerlink" href="#post--api-auth-profile-edit" title="Permalink to this definition">¶</a></dt> <dd><p>edit authenticated user</p> <p><strong>Example request</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/auth/profile/edit</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> </pre></div> </div> <p><strong>Example response</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"admin"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="nt">"bio"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"birth_date"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"created_at"</span><span class="p">:</span> <span class="s2">"Sun, 14 Jul 2019 14:09:58 GMT"</span><span class="p">,</span> <span class="nt">"email"</span><span class="p">:</span> <span class="s2">"sam@example.com"</span><span class="p">,</span> <span class="nt">"first_name"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"id"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nt">"language"</span><span class="p">:</span> <span class="s2">"en"</span><span class="p">,</span> <span class="nt">"last_name"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"location"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nt">"nb_activities"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span> <span class="nt">"nb_sports"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nt">"picture"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="nt">"timezone"</span><span class="p">:</span> <span class="s2">"Europe/Paris"</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mf">67.895</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="s2">"6:50:27"</span><span class="p">,</span> <span class="nt">"username"</span><span class="p">:</span> <span class="s2">"sam"</span> <span class="s2">"weekm"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span> <span class="p">},</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"User profile updated."</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Request JSON Object</dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>first_name</strong> (<em>string</em>) – user first name</p></li> <li><p><strong>last_name</strong> (<em>string</em>) – user last name</p></li> <li><p><strong>location</strong> (<em>string</em>) – user location</p></li> <li><p><strong>bio</strong> (<em>string</em>) – user biography</p></li> <li><p><strong>birth_date</strong> (<em>string</em>) – user birth date (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span></code>)</p></li> <li><p><strong>password</strong> (<em>string</em>) – user password</p></li> <li><p><strong>password_conf</strong> (<em>string</em>) – user password confirmation</p></li> <li><p><strong>timezone</strong> (<em>string</em>) – user time zone</p></li> <li><p><strong>weekm</strong> (<em>string</em>) – does week start on Monday?</p></li> <li><p><strong>language</strong> (<em>string</em>) – language preferences</p></li> </ul> </dd> <dt class="field-even">Request Headers</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-odd">Status Codes</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – User profile updated.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – <ul> <li><p>Invalid payload.</p></li> <li><p>Password and password confirmation don’t match.</p></li> </ul> </p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul> <li><p>Provide a valid auth token.</p></li> <li><p>Signature expired. Please log in again.</p></li> <li><p>Invalid token. Please log in again.</p></li> </ul> </p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a> – Error. Please try again or contact the administrator.</p></li> </ul> </dd> </dl> </dd></dl> <dl class="post"> <dt id="post--api-auth-picture"> <code class="sig-name descname">POST </code><code class="sig-name descname">/api/auth/picture</code><a class="headerlink" href="#post--api-auth-picture" title="Permalink to this definition">¶</a></dt> <dd><p>update authenticated user picture</p> <p><strong>Example request</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/auth/picture</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">multipart/form-data</span> </pre></div> </div> <p><strong>Example response</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"message"</span><span class="p">:</span> <span class="s2">"User picture updated."</span><span class="p">,</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Form Parameters</dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>file</strong> – image file (allowed extensions: .jpg, .png, .gif)</p></li> </ul> </dd> <dt class="field-even">Request Headers</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-odd">Status Codes</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – User picture updated.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – <ul> <li><p>Invalid payload.</p></li> <li><p>No file part.</p></li> <li><p>No selected file.</p></li> <li><p>File extension not allowed.</p></li> </ul> </p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul> <li><p>Provide a valid auth token.</p></li> <li><p>Signature expired. Please log in again.</p></li> <li><p>Invalid token. Please log in again.</p></li> </ul> </p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413 Request Entity Too Large</a> – Error during picture update: file size exceeds 1.0MB.</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a> – Error during picture update.</p></li> </ul> </dd> </dl> </dd></dl> <dl class="delete"> <dt id="delete--api-auth-picture"> <code class="sig-name descname">DELETE </code><code class="sig-name descname">/api/auth/picture</code><a class="headerlink" href="#delete--api-auth-picture" title="Permalink to this definition">¶</a></dt> <dd><p>delete authenticated user picture</p> <p><strong>Example request</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/auth/picture</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> </pre></div> </div> <p><strong>Example response</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">204</span> <span class="ne">NO CONTENT</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Request Headers</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-even">Status Codes</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a> – picture deleted</p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul> <li><p>Provide a valid auth token.</p></li> <li><p>Signature expired. Please log in again.</p></li> <li><p>Invalid token. Please log in again.</p></li> </ul> </p></li> <li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a> – Error during picture deletion.</p></li> </ul> </dd> </dl> </dd></dl> </div> </div> </div> </div> <footer class="footer"> <div class="container"> <p class="pull-right"> <a href="#">Back to top</a> </p> <p> © Copyright 2018 - 2019, SamR1.<br/> Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/> </p> </div> </footer> </body> </html>