<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Authentication on NotNil Blog</title><link>https://notnil.org/en/tags/authentication/</link><description>Recent content in Authentication on NotNil Blog</description><generator>Hugo</generator><language>en-US</language><copyright>© Matthieu Moreau</copyright><lastBuildDate>Sun, 27 Nov 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://notnil.org/en/tags/authentication/index.xml" rel="self" type="application/rss+xml"/><item><title>T-OTP</title><link>https://notnil.org/en/posts/6-totp/</link><pubDate>Sun, 27 Nov 2022 00:00:00 +0000</pubDate><guid>https://notnil.org/en/posts/6-totp/</guid><description>&lt;p&gt;&lt;img src="https://notnil.org/images/posts/totp/time_feature.jpeg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;Article originally written for the &lt;a href="https://blog.coddity.com"&gt;Coddity blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;For a while now I&amp;rsquo;ve been building, in my spare time, a complete authentication service, with the aim of implementing a lot of authentication mechanisms: magic link, login/password, Oauth2, account validation, password recovery, and the famous 2FA.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;ll admit I used Google Authenticator every day without ever thinking to look at the mechanism &amp;ldquo;under the hood&amp;rdquo;. This article is the plain-language version of what I learned.&lt;/p&gt;</description></item></channel></rss>