Our journey of exploring authentication with Ktor has come to an end. Thanks to all of you who have followed along through this tutorial series. Over the past two months and across ten comprehensive posts, we’ve covered a wide array of techniques and best practices to secure Ktor applications effectively. For those who wish to revisit any part of the series or experiment with the code, I’ve compiled everything into a neatly organized GitHub repository.

Below are the published posts. Each post tackles a distinct topic within the series, complete with practical implementation examples to guide you in your own application design.

Authentication with Ktor

Part 0: Launching a Guide to Conquer Authentication with Ktor

An initial post announcing the new series, goals and setting expectations.

Building Ktor with Gradle

Part 1: Getting Started

An overview of the concept of authentication and how it’s handled in Ktor applications.

Basic Authentication with Ktor

Part 2: Basic Authentication

A step-by-step guide to implementing Basic Authentication in your Ktor app.

Form-based auth with Ktor

Part 3: Form-Based Authentication

New Year’s Eve edition! Avoid passing user credentials with each request. Dive into how to secure your Ktor applications using form-based authentication.

Session Management with Ktor

Part 4: Session Management

Learn how to manage user sessions after the initial authentication.

JWT embraces trust

Part 5: Introduction into JSON Web Tokens

Manage sessions more efficiently via JSON Web Tokens (JWT). Promote stateless authentication for improved scalability and make it work across different platforms.

JWT: header, payload, signature

Part 6: Implementing JSON Web Tokens

A practical guide into implementing JWT in Ktor. Follow along as we dive into securing your web application seamlessly and effectively.

JWT token refresh

Part 7: Refreshing an Access Token with Ktor and JWT

What happens once the access token expires? Learn to address this concern and easily refresh an expired token in the background, without asking the user to re-authenticate.

Authorization with Facebook and Google

Part 8: Introducing OAuth 2.0

While JWT primarily ensures secure communication, OAuth 2.0 focuses on the delegation of access. Let’s dissect this widely adopted protocol.

Google OAuth with Ktor

Part 9: Implementing Stateless OAuth in Ktor Using Google and JWT

Social login made easy in a Ktor application with a valuable efficiency tweak! Instead of relying on user session cookies to store access tokens, we’re leveraging JWT to encapsulate the access token. This shifts our authentication to a stateless model, making our server more resource efficient.

CORS inspector

Part 10 : Protect Access with CORS

A well defined CORS policy not only enhances security but also promotes a seamless interaction between different domains. Ktor makes this process easy. In this final part of our series provides examples and guidance.


Tomas Zezula

Hello! I'm a technology enthusiast with a knack for solving problems and a passion for making complex concepts accessible. My journey spans across software development, project management, and technical writing. I specialise in transforming rough sketches of ideas to fully launched products, all the while breaking down complex processes into understandable language. I believe a well-designed software development process is key to driving business growth. My focus as a leader and technical writer aims to bridge the tech-business divide, ensuring that intricate concepts are available and understandable to all. As a consultant, I'm eager to bring my versatile skills and extensive experience to help businesses navigate their software integration needs. Whether you're seeking bespoke software solutions, well-coordinated product launches, or easily digestible tech content, I'm here to make it happen. Ready to turn your vision into reality? Let's connect and explore the possibilities together.