Full Stack Journey 075: Authentication’s Role In The Online World

You’ve probably heard terms such as authentication, authorization, OAuth2, OIDC, WebAuthn, but maybe you don’t have a good idea of exactly what they are or when they’re used.

Authentication is a key technology that underpins large portions of the online world, and so it’s worth exploring in a bit more detail. In this episode of the Full Stack Journey podcast, Scott talks with Dan Moore of FusionAuth about all things authentication.

We discuss

  • What is authentication?
  • What kinds or types of authentication are there out there?
  • What are some of the considerations around authentication?
  • What is OAuth2? What’s OIDC?
  • What is WebAuthn?
  • What are some related technologies?

Show Notes:

@mooreds – Dan Moore on Twitter

ruby.social/@mooreds – Dan Moore on Mastodon

Modern guide to OAuth – FusionAuth

Intro to WebAuthn – FushionAuth

RFC 6749 (the OAuth2 RFC)

The specification for OpenID Connect – OpenID

The specification for WebAuthn – W3C

API Tokens: A Tedious Survey – Fly.io

Share this episode

Grab a Packet Capture!

Get a weekly log of all the newest content across the network in the Packet Capture newsletter.

Subscribe

Have feedback for the hosts?

We want your follow-up.

SEND AN FU 😎

Leave a Comment

window.addEventListener("DOMContentLoaded", function() { var preElements = document.getElementsByTagName("pre"); if (preElements && preElements.length > 0) { for (var i = 0; i < preElements.length; i++) { var preElement = preElements[i]; var spanElement = document.createElement("span"); spanElement.classList.add("copy-container"); var buttonElement = document.createElement("button"); buttonElement.textContent = "Copy Snippet"; buttonElement.classList.add("copy-button"); buttonElement.addEventListener("click", createCopyTextHandler(preElement)); spanElement.appendChild(preElement.cloneNode(true)); spanElement.appendChild(buttonElement); preElement.parentNode.replaceChild(spanElement, preElement); } } }); function createCopyTextHandler(element) { return function() { var text = element.textContent; var tempInput = document.createElement("textarea"); tempInput.style = "position: absolute; left: -1000px; top: -1000px"; tempInput.value = text; document.body.appendChild(tempInput); tempInput.select(); document.execCommand("copy"); document.body.removeChild(tempInput); }; } */ ?>