Skip to main content

Web application using OAuth 2.0 framework

This blog post describes implementing a Node js application that uses OAuth 2.0 to upload files in to tyhe google drive. In this project we'll use Google OAuth 2.0 for authentication, Google Drive API as the file uploader and Passport.js as the authentication middleware.

Before we begin, let's see what OAuth 2.0 is.

OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 supersedes the work done on the original OAuth protocol created in 2006. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices. This specification and its extensions are being developed within the IETF OAuth Working Group.
                                                                                         - OAuth 2.0 Official Documentation

In Simple words, OAuth 2.0 is a authorization framework that allows third party applications to obtain limited access to a HTTP service. The access can be required by various types of clients like mobile applications, web applications etc.

There are four main grant types in OAuth 2.0.


  1. Client Credentials
  2. Authorization Code
  3. Resource Owner Password Credential
  4. Implicit




For this project we'll be using OAuth 2.0 - Authorization Code grant type.

This grant type is widely in use as this type is capable of maintaining the confidentiality of the client while not exposing the code in public. 



Step 1: Authorization Code link

Step 2: User Authorizes application.



Running the application in the local machine

Project source code is available in the GitHub repository: https://github.com/sachiniepa/SecureSoftwareDevelopmentAssignment2.git

Import the project to the local environment
Open the Project with your favourite IDE.
Run 'npm install'
Run 'npm run dev'


Application Flow

On the URL http://localhost:3000 the application displays the button to upload the files. Once the user clicks on the button, the user is redirected to the Google OAuthentication Page. After successful authentication, the user is redirected to the page which allows the user to select the files that should be uploaded.










This is the end of the blog post. Hope you all found it interesting! 

Comments

Popular posts from this blog

Getting started with Spring Boot

In this blog post I am gonna give you all an introduction on Spring Boot, an application framework and inversion controller for the java platform. Before diving in to Spring Boot framework, let's get a brief idea about the Spring framework on top of which the Spring Boot was created. Spring is a very popular application framework for java web and enterprise and web applications which was initially written by Rod Johnson.Millions and millions of people around the world use this to make their codes high performing, easily testable and reusable.Spring framework is build on top of the Dependency Injection (DI) concept. What is Dependency Injection? When it comes to a complex java application, the classes should not be depending on one another, in order to reuse our code and to make the unit testing easy.For such situations, dependency injection is used to connect the classes together while making them independent.So what exactly happens here? Let's think of Dependency in...

Getting started with React js

In this blog post, I'm gonna explain you all about React js, a javascript technology that is used to create interactive single page applications.

Noob introduction to Node.js

In this blog post I am gonna give you all a brief idea about Node.js. Earlier JavaScript was purely used for client side scripting, and it was embedded to a html page.But the node js developers use it for server side scripting(to produce the content of dynamic web pages before sending it to the user.) Node.js is an open source, cross platform run-time environment that executes JavaScript code server side. Why node.js? Node.js uses asynchronous programming. When a file request comes a ASP/PHP file would, Send the task to the computer's file system. Wait for the system to open and read the file. Sends the respond back to the client Get ready to handle the next task. But as node.js is using asynchronous programming, it would handle the request in a different manner.It would, Send the task to the computer's file system. Handles the next coming task. Returns the respond of the first task to the client when the system has completed it. In brief it reduces wa...