<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="6636" data-post-id="6636">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andre1sk" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andre1sk/120/1380_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andre1sk
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This whole argument conveniently ignores the case when people operate in heterogeneous environment.  JWT is fairly widely supported and works fine across multiple stacks.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6636" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-6636" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6636"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #41"></div>
  </section>
</div>
    <div class="postbit" id="6637" data-post-id="6637">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m using JWT (via Guardian) as a login ‘session’ token (bad form I know) and web page access permissions hit the database anyway, however the same JWT is also used on the API area, which does not always hit the database and uses the JWT course-grained permissions where possible.  The JWT’s elapse really fast but get regenerated by the server as needed if the rest of the session data from phoenix matches as well.  The main system uses a very very fine grained permission setup that I would not see a way to be able to stuff into a JWT in any kind of compressed way at all so I cannot use them strictly for main web interaction, but it is great for API interaction.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6637" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-6637" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6637"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #42"></div>
  </section>
</div>
    <div class="postbit" id="6642" data-post-id="6642">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="swennemans" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/swennemans/120/1657_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  swennemans
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="benwilson512" data-post="41" data-topic="853" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/48/1457_2.png" class="avatar"> benwilson512:</div>
<blockquote>
<p>A blacklist is by its very nature almost always a small subset of your total user base. Also, you only need to keep an item in the blacklist until the JWT key expires. Thus, the size of the blacklists is merely the number of users blacklisted in the last N minutes, which is usually a fraction of the total number of users.</p>
</blockquote>
</aside>
<p>Thanks for replying. So is it an performance argument then? Eg. the blacklist is small thus faster query results?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6642" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-6642" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6642"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #43"></div>
  </section>
</div>
    <div class="postbit" id="6643" data-post-id="6643">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="joepie91" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/joepie91/120/1808_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  joepie91
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It doesn’t ignore it. This is solved the same way as any other microservices scenario, described at the bottom of <a href="http://cryto.net/~joepie91/blog/2016/06/19/stop-using-jwt-for-sessions-part-2-why-your-solution-doesnt-work/" rel="noopener nofollow ugc">my follow-up</a>. You don’t <em>need</em> cross-stack sessions, it’s solving the wrong problem.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6643" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-6643" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6643"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #44"></div>
  </section>
</div>
    <div class="postbit" id="6644" data-post-id="6644">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="joepie91" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/joepie91/120/1808_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  joepie91
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>(Irritatingly, it seems Discourse doesn’t have a practical multi-reply feature.)</p>
<p>Major tech companies use bearer tokens, but not as their main session mechanism, rather in an SSO-like setup. They typically <em>also</em> keep around session for individual stateful services.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6644" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-6644" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6644"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #45"></div>
  </section>
</div>
    <div class="postbit" id="6645" data-post-id="6645">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mbriggs" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mbriggs/120/1920_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mbriggs
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>A refresh token can be revoked. The reason you can’t revoke a JWT is because by design you dont need to talk to a server. I don’t think guardian actually supports this at this time, but other JWT implementations do.</p>
<p>WRT blacklist is basically a session store, the difference is 1) you barely ever have to revoke sessions. That doesn’t mean its not an important feature (its extremely important), but its definitely the exceptional case. 2) You need something like JWTs anyways for stuff like JWTs anyways for APIs.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6645" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-6645" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6645"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #46"></div>
  </section>
</div>
    <div class="postbit" id="6646" data-post-id="6646">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="swennemans" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/swennemans/120/1657_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  swennemans
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/joepie91" rel="nofollow">@joepie91</a> Nice to have you back on the discussion again <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<p>Question: How would you handle communication native app ↔ JSON API. Cookies are not of any use here. Would using a JWT with a session id would be acceptable here?</p>
<p>But then I’m (naively I’m sure ;)) wondering, why wouldn’t I sign and/or encrypt a session ID and put it in the authorization header myself?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6646" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/48">Post #47</a>
	                </div>
	            </div>
              <div id="likers-container-6646" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6646"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #47"></div>
  </section>
</div>
    <div class="postbit" id="6647" data-post-id="6647">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="joepie91" data-post="46" data-topic="853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/joepie91/48/1808_2.png" class="avatar"> joepie91:</div>
<blockquote>
<p>(Irritatingly, it seems Discourse doesn’t have a practical multi-reply feature.)</p>
</blockquote>
</aside>
<p>[offtopic]<br>
Open a reply (even at the bottom replying to no one), highlight text, select <code>Quote Reply</code> that appears, they should still get the notification and all and you can do it for as many people as you wish.<br>
[/offtopic]</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6647" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/49">Post #48</a>
	                </div>
	            </div>
              <div id="likers-container-6647" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6647"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #48"></div>
  </section>
</div>
    <div class="postbit" id="6648" data-post-id="6648">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="swennemans" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/swennemans/120/1657_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  swennemans
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="mbriggs" data-post="47" data-topic="853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mbriggs/48/1920_2.png" class="avatar"> mbriggs:</div>
<blockquote>
<p>A refresh token can be revoked. The reason you can’t revoke a JWT is because by design you dont need to talk to a server. I don’t think guardian actually supports this at this time, but other JWT implementations do.</p>
</blockquote>
</aside>
<p>It seems that <em>“because by design you dont need to talk to a server”</em> is one of the core elements of what a JWT is, and then we have refresh tokens. That seems defeating the point. As <a href="https://www.dinochiesa.net/?p=1388" rel="noopener nofollow ugc">this article</a> states:</p>
<blockquote>
<p>This is a long story and I’m finally getting to the point: If you want JWT with powers to revoke the token, then you abandon the federation benefit.</p>
</blockquote>
<blockquote>
<p>Making the JWT self-descrbing means no honoring party needs to contact the issuer. Just verify the signature (verify the $20 bill is real), and then grant service. If you add in revocation as a requirement, then the honoring party then needs to contact the issuer: “I have $20 bill with serial number T128-DCQ-2872JKDJ; should I honor it?”</p>
</blockquote>
<aside class="quote no-group" data-username="mbriggs" data-post="47" data-topic="853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mbriggs/48/1920_2.png" class="avatar"> mbriggs:</div>
<blockquote>
<p>WRT blacklist is basically a session store, the difference is 1) you barely ever have to revoke sessions. That doesn’t mean its not an important feature (its extremely important), but its definitely the exceptional case. 2) You need something like JWTs anyways for stuff like JWTs anyways for APIs.</p>
</blockquote>
</aside>
<p>I see the benefits here. But it also looks a little like premature optimization.<br>
Your ideas <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"> ?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6648" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/50">Post #49</a>
	                </div>
	            </div>
              <div id="likers-container-6648" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6648"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #49"></div>
  </section>
</div>
    <div class="postbit" id="6649" data-post-id="6649">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="joepie91" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/joepie91/120/1808_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  joepie91
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="swennemans" data-post="48" data-topic="853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/swennemans/48/1657_2.png" class="avatar"> swennemans:</div>
<blockquote>
<p>Question: How would you handle communication native app &lt;–&gt; JSON API. Cookies are not of any use here. Would using a JWT with a session id would be acceptable here?</p>
</blockquote>
</aside>
<p>It depends. Cookies work just fine outside of browsers (any reasonable HTTP library will support them), so you <em>can</em> just use sessions like you would for a web-based thing. It does introduce potential CSRF issues though, depending on your setup, and a bit more state to keep around.</p>
<p>For application-only APIs, the solution is generally to use a standard API authentication scheme. This can be something as simple as a randomly generated API key in a header (over TLS, naturally). Like for sessions, invalidation is a concern, and so you want to avoid stateless tokens unless scale demands it.</p>
<p>For APIs that need to serve both standalone applications and web-based applications, you have two options:</p>
<ol>
<li>Either build a separate API or authentication scheme for each case. Standalone apps authenticate like above, web-based things use sessions. Especially if the type of operations that the app does are significantly different from the type of operations the web-based interface does, this is an attractive option maintainability-wise.</li>
<li>If you’re on a deadline: build a single API that <em>only</em> supports session cookie authentication, and simply use a HTTP library in your stand-alone applications that supports cookies. Of course you still need to worry about CSRF - sending along the token in a header should suffice, and is possible in both the web-based interface and the standalone applications.</li>
</ol>
<aside class="quote no-group quote-modified" data-username="swennemans" data-post="48" data-topic="853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/swennemans/48/1657_2.png" class="avatar"> swennemans:</div>
<blockquote>
<p>But then I’m (naively I’m sure <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20">) wondering, why wouldn’t I sign and/or encrypt a session ID and put it in the authorization header myself?</p>
</blockquote>
</aside>
<p>Because JWT is a generally well-tested implementation for what it does (ie. signed claims). For security-related things, you should <em>always</em> aim to use existing and well-tested implementations, rather than implementing your own. It’s <em>really</em> easy to mess something up fatally in security/crypto, and there’s no point making (likely fatal) mistakes that somebody else has already made and fixed for you.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="49" data-topic="853">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>[offtopic]Open a reply (even at the bottom replying to no one), highlight text, select Quote Reply that appears, they should still get the notification and all and you can do it for as many people as you wish.[/offtopic]</p>
</blockquote>
</aside>
<p>Excellent, thanks, that helps <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="6649" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/guardian-jwt-vs-phoenix-token/853/51">Post #50</a>
	                </div>
	            </div>
              <div id="likers-container-6649" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="6649"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #50"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/853/load_more?page=6">Load more posts (5 remaining)</a>
</div></template></turbo-stream>