Book Image

OAuth 2.0 Cookbook

By : Adolfo Eloy Nascimento
Book Image

OAuth 2.0 Cookbook

By: Adolfo Eloy Nascimento

Overview of this book

OAuth 2.0 is a standard protocol for authorization and focuses on client development simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and so on. This book also provides useful recipes for solving real-life problems using Spring Security and creating Android applications. The book starts by presenting you how to interact with some public OAuth 2.0 protected APIs such as Facebook, LinkedIn and Google. You will also be able to implement your own OAuth 2.0 provider with Spring Security OAuth2. Next, the book will cover practical scenarios regarding some important OAuth 2.0 profiles such as Dynamic Client Registration, Token Introspection and how to revoke issued access tokens. You will then be introduced to the usage of JWT, OpenID Connect, and how to safely implement native mobile OAuth 2.0 Clients. By the end of this book, you will be able to ensure that both the server and client are protected against common vulnerabilities.
Table of Contents (16 chapters)
Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

Adding support for refresh tokens


This recipe covers an important feature described by the OAuth 2.0 specification and implemented by Spring Security OAuth2 as well. That's the refresh token grant type, which allows for a better user experience because the Resource Owner does not have to go through all the steps of authentication and authorization against the Authorization Server every time an access token expires.

Getting ready

To run this recipe, you can use your preferred IDE and must have Java 8 and Maven installed. As we will add support to refresh tokens for the Authorization Code and Password grant types, now we will interact with the Authorization Server and Resource Server using the already known tools that are CURL and your web browser. By running this recipe, your OAuth 2.0 Provider will be able to issue an access token and a refresh token for any registered client. This recipe still does not use any kind of persistent database to store client details and tokens and the source code...