---
title: Using DreamFactory 2.0 with OAuth services
description: Using DreamFactory 2.0 with OAuth services
image: https://blog.dreamfactory.com/hubfs/2.0.png
---

[![DreamFactory logo](https://cdn.prod.website-files.com/64ed8da8a866be7a702fbae0/68d51994d3678214b54acb60_dreamfactory-navbar-logo.svg)](https://www.dreamfactory.com/)

 Products & Services

[AI Data Gateway](https://www.dreamfactory.com/ai-data-gateway/overview)

[Overview Why DreamFactory exists](https://www.dreamfactory.com/ai-data-gateway/overview) [Data Gov, Comp, Security Policy enforcement at the API layer](https://www.dreamfactory.com/ai-data-gateway/ai-data-governance) [Standard API Layer One contract for every backend](https://www.dreamfactory.com/ai-data-gateway/standard-api-layer) [API Gateway Functionality Routing, auth, rate limits, observability](https://www.dreamfactory.com/ai-data-gateway/api-gateway-functionality) [Deployment & Integration Self-hosted, cloud, hybrid](https://www.dreamfactory.com/ai-data-gateway/on-premise-deployment-and-integration) [Developer Productivity Auto-generated, never hand-coded](https://www.dreamfactory.com/ai-data-gateway/ai-development-accelerated) [AI App Architectures Patterns for RAG, agents, MCP](https://www.dreamfactory.com/ai-data-gateway/enterprise-ai-architectures)

AI Data Models

[AIOpenAI](https://www.dreamfactory.com/use-cases/openai) [GGoogle Gemini](https://www.dreamfactory.com/use-cases/google-gemini) [CAnthropic Claude](https://www.dreamfactory.com/use-cases/anthropic-claude-landing) [LMeta Llama](https://www.dreamfactory.com/use-cases/meta-llama) [MMistral AI](https://www.dreamfactory.com/use-cases/mistral) [CoCohere](https://www.dreamfactory.com/use-cases/cohere)

Services and support

[Quickstart Service Packages Expert-led Quickstarts to production](https://www.dreamfactory.com/services-and-support/quickstart-services-packages)

API Management

[Generate & Manage REST APIs From any database, in seconds](https://www.dreamfactory.com/api-management/generate-rest-apis) [Features Security, scripting, self-hosted & more](https://www.dreamfactory.com/api-management/features) [API Generation The complete guide to auto-generated APIs](https://blog.dreamfactory.com/a-complete-guide-to-api-generation) [API Management Concepts, tools, and best practises](https://blog.dreamfactory.com/what-is-api-management-a-brief-overview-of-api-management-concepts-and-tools?_gl=1*jl0njh*_gcl_au*MjQzMjgwMTc3LjE3ODIzMjI3MzY)

 Use Cases

AI Use Cases

[AI Data Access Secure, governed reads for your LLMs](https://www.dreamfactory.com/use-cases/ai-data-access) [MCP Server Drop-in Model Context Protocol](https://www.dreamfactory.com/use-cases/mcp-server) [Legacy Modernization Wrap mainframes with REST](https://www.dreamfactory.com/use-cases/legacy-modernization) [Data Governance Audit every call, enforce every policy](https://www.dreamfactory.com/use-cases/data-governance)

[Customer Case Studies](https://www.dreamfactory.com/case-studies)

[Energy Modernization](https://www.dreamfactory.com/case-studies/energy-snowflake-modernization) [Government Modernization](https://www.dreamfactory.com/case-studies/government-mainframe-oracle-modernization) [Government Business Intelligence](https://www.dreamfactory.com/case-studies/government-sql-server-bi-analyst-queries) [Manufacturing Modernization](https://www.dreamfactory.com/case-studies/steel-manufacturing-sap-erp-modernization) [Financial Services Investor Portal](https://www.dreamfactory.com/case-studies/financial-services-sql-server-investor-portal) [Non-Profit Partner Data Sharing](https://www.dreamfactory.com/case-studies/non-profit-sql-server-partner-data-sharing) [Professional Services Exec Dashboards](https://www.dreamfactory.com/case-studies/professional-services-erp-dashboards) [Education HR and External Data Sharing](https://www.dreamfactory.com/case-studies/education-student-hr-sql-server-mysql-external-data-sharing)

 Industries

Industries

#### [Healthcare HIPAA-grade APIs across EHR, claims, and labs.](https://www.dreamfactory.com/use-cases/healthcare)

#### [Financial Services Portfolios, partners, and portals on one layer.](https://www.dreamfactory.com/use-cases/financial-services)

#### [Government Modernize mainframes without re-platforming.](https://www.dreamfactory.com/use-cases/government)

#### [Manufacturing SAP, MES, and shop-floor data, governed.](https://www.dreamfactory.com/use-cases/manufacturing)

#### [Spotlight How enterprises run on DreamFactory From healthcare to energy to finance — governance baked into every endpoint. Browse case studies →](https://www.dreamfactory.com/case-studies)

 Connectors

SQL Database

[SQL SQL Server](https://www.dreamfactory.com/connectors/sql-server) [OR Oracle](https://www.dreamfactory.com/connectors/oracle) [PG PostgreSQL](https://www.dreamfactory.com/connectors/postgresql) [My MySQL](https://www.dreamfactory.com/connectors/mysql)

NoSQL & Docs

[Dy DynamoDB](https://www.dreamfactory.com/connectors/dynamodb) [Do DocumentDB](https://www.dreamfactory.com/connectors/azure-documentdb) [Mo MongoDB](https://www.dreamfactory.com/connectors/mongodb) [Cb CouchDB](https://www.dreamfactory.com/connectors/couch-db)

Cloud Warehouses

[S3 S3](https://www.dreamfactory.com/connectors/amazon-s3) [Ab Azureblob](https://www.dreamfactory.com/connectors/azure-blob) [FS FTP/SFTP](https://www.dreamfactory.com/connectors/ftp-sftp) [LS Local Storage](https://www.dreamfactory.com/connectors/local-storage)

C & SaaS

[Sf Salesforce](https://www.dreamfactory.com/connectors/salesforce) [API REST / SOAP](https://www.dreamfactory.com/connectors/soap-to-rest)

[See all 30+ connectors](https://www.dreamfactory.com/connectors)

[Blog](https://blog.dreamfactory.com/)

[FREE 30 Minute Demo](https://www.dreamfactory.com/demo)

[![DreamFactory logo](https://cdn.prod.website-files.com/64ed8da8a866be7a702fbae0/68d51994d3678214b54acb60_dreamfactory-navbar-logo.svg)](https://www.dreamfactory.com/)

![hamburger](https://blog.dreamfactory.com/hubfs/raw_assets/public/dreamfactory/images/megamenu/menu-hamburger.svg) ![close](https://blog.dreamfactory.com/hubfs/raw_assets/public/dreamfactory/images/megamenu/close-menu.svg)

 Back to main menu

 Products & Services

 Use Cases

 Industries

 Connectors

[Blog](https://blog.dreamfactory.com/)

[FREE 30 Minute Demo](https://www.dreamfactory.com/demo)

[AI Data Gateway](https://www.dreamfactory.com/ai-data-gateway/overview)

[Overview Why DreamFactory exists](https://www.dreamfactory.com/ai-data-gateway/overview) [Data Gov, Comp, Security Policy enforcement at the API layer](https://www.dreamfactory.com/ai-data-gateway/ai-data-governance) [Standard API Layer One contract for every backend](https://www.dreamfactory.com/ai-data-gateway/standard-api-layer) [API Gateway Functionality Routing, auth, rate limits, observability](https://www.dreamfactory.com/ai-data-gateway/api-gateway-functionality) [Deployment & Integration Self-hosted, cloud, hybrid](https://www.dreamfactory.com/ai-data-gateway/on-premise-deployment-and-integration) [Developer Productivity Auto-generated, never hand-coded](https://www.dreamfactory.com/ai-data-gateway/ai-development-accelerated) [AI App Architectures Patterns for RAG, agents, MCP](https://www.dreamfactory.com/ai-data-gateway/enterprise-ai-architectures)

AI Data Models

[AIOpenAI](https://www.dreamfactory.com/use-cases/openai) [GGoogle Gemini](https://www.dreamfactory.com/use-cases/google-gemini) [CAnthropic Claude](https://www.dreamfactory.com/use-cases/anthropic-claude-landing) [LMeta Llama](https://www.dreamfactory.com/use-cases/meta-llama) [MMistral AI](https://www.dreamfactory.com/use-cases/mistral) [CoCohere](https://www.dreamfactory.com/use-cases/cohere)

Services and support

[Quickstart Service Packages Expert-led Quickstarts to production](https://www.dreamfactory.com/services-and-support/quickstart-services-packages)

AI Data Models

[Generate & Manage REST APIs From any database, in seconds](https://www.dreamfactory.com/api-management/generate-rest-apis) [Features Security, scripting, self-hosted & more](https://www.dreamfactory.com/api-management/features) [API Generation The complete guide to auto-generated APIs](https://blog.dreamfactory.com/a-complete-guide-to-api-generation) [API Management Concepts, tools, and best practises](https://blog.dreamfactory.com/what-is-api-management-a-brief-overview-of-api-management-concepts-and-tools?_gl=1*jl0njh*_gcl_au*MjQzMjgwMTc3LjE3ODIzMjI3MzY)

AI Use Cases

[AI Data Access Secure, governed reads for your LLMs](https://www.dreamfactory.com/use-cases/ai-data-access) [MCP Server Drop-in Model Context Protocol](https://www.dreamfactory.com/use-cases/mcp-server) [Legacy Modernization Wrap mainframes with REST](https://www.dreamfactory.com/use-cases/legacy-modernization) [Data Governance Audit every call, enforce every policy](https://www.dreamfactory.com/use-cases/data-governance)

[Customer Case Studies](https://www.dreamfactory.com/case-studies)

[Energy Modernization](https://www.dreamfactory.com/case-studies/energy-snowflake-modernization) [Government Modernization](https://www.dreamfactory.com/case-studies/government-mainframe-oracle-modernization) [Government Business Intelligence](https://www.dreamfactory.com/case-studies/government-sql-server-bi-analyst-queries) [Manufacturing Modernization](https://www.dreamfactory.com/case-studies/steel-manufacturing-sap-erp-modernization) [Financial Services Investor Portal](https://www.dreamfactory.com/case-studies/financial-services-sql-server-investor-portal) [Non-Profit Partner Data Sharing](https://www.dreamfactory.com/case-studies/non-profit-sql-server-partner-data-sharing) [Professional Services Exec Dashboards](https://www.dreamfactory.com/case-studies/professional-services-erp-dashboards) [Education HR and External Data Sharing](https://www.dreamfactory.com/case-studies/education-student-hr-sql-server-mysql-external-data-sharing)

Industries

#### [Healthcare HIPAA-grade APIs across EHR, claims, and labs.](https://www.dreamfactory.com/use-cases/healthcare)

#### [Financial Services Portfolios, partners, and portals on one layer.](https://www.dreamfactory.com/use-cases/financial-services)

#### [Government Modernize mainframes without re-platforming.](https://www.dreamfactory.com/use-cases/government)

#### [Manufacturing SAP, MES, and shop-floor data, governed.](https://www.dreamfactory.com/use-cases/manufacturing)

SQL Database

[SQL SQL Server](https://www.dreamfactory.com/connectors/sql-server) [OR Oracle](https://www.dreamfactory.com/connectors/oracle) [PG PostgreSQL](https://www.dreamfactory.com/connectors/postgresql) [My MySQL](https://www.dreamfactory.com/connectors/mysql)

NoSQL & Docs

[Dy DynamoDB](https://www.dreamfactory.com/connectors/dynamodb) [Do DocumentDB](https://www.dreamfactory.com/connectors/azure-documentdb) [Mo MongoDB](https://www.dreamfactory.com/connectors/mongodb) [Cb CouchDB](https://www.dreamfactory.com/connectors/couch-db)

Cloud Warehouses

[S3 S3](https://www.dreamfactory.com/connectors/amazon-s3) [Ab Azureblob](https://www.dreamfactory.com/connectors/azure-blob) [FS FTP/SFTP](https://www.dreamfactory.com/connectors/ftp-sftp) [LS Local Storage](https://www.dreamfactory.com/connectors/local-storage)

C & SaaS

[Sf Salesforce](https://www.dreamfactory.com/connectors/salesforce) [API REST / SOAP](https://www.dreamfactory.com/connectors/soap-to-rest)

[See all 30+ connectors](https://www.dreamfactory.com/connectors)

[![back arrow](https://blog.dreamfactory.com/hubfs/raw_assets/public/dreamfactory/images/orange-arrow.svg) Blog](https://blog.dreamfactory.com/)

# Using DreamFactory 2.0 with OAuth services

 by Kevin McGahey

![calendar icon](https://blog.dreamfactory.com/hubfs/raw_assets/public/dreamfactory/images/calendar-icon.svg) July 6, 2018

Table of contents

RECOMMENDED ARTICLES

- [A Complete Guide to API Generation](https://blog.dreamfactory.com/a-complete-guide-to-api-generation)
- [10 Best API Management Tools](https://blog.dreamfactory.com/what-is-api-management-a-brief-overview-of-api-management-concepts-and-tools)
- [Creating a Microsoft SQL Server API in Less Than 5 minutes with DreamFactory](https://blog.dreamfactory.com/creating-a-microsoft-sql-server-api-in-less-than-5-minutes-with-dreamfactory)
- [Hasura vs. DreamFactory: A Comprehensive Comparison](https://blog.dreamfactory.com/hasura-vs-dreamfactory)
- [Build A Snowflake REST API in Less Than 5 Minutes](https://blog.dreamfactory.com/generate-a-snowflake-rest-api-in-less-than-5-minutes)

DreamFactory 2.0 supports authentication using OAuth services. Developers can now allow end users to login with credentials from sites like [Facebook](https://blog.dreamfactory.com/dreamfactory-and-facebook-oauth-2-0/), Twitter (yes, OAuth 1.0 is supported!), Google, and GitHub.

DreamFactory 2.0 makes it super easy to add OAuth services to your apps without any server-side coding or token handling. The currently supported OAuth service providers are Facebook, Twitter, Google, and GitHub. We’ll be adding more OAuth providers in the future.

## How OAuth works in general

There are different ways OAuth can be implemented, depending on the type of applications utilizing it. There are four main “grant types” for OAuth: authorization code grant, implicit grant, resource owner credentials grant, and client credentials grant. DreamFactory 2.0 uses the “Authorization Code” grant type. This is the type that is commonly used for web-based applications. You can find out more about the grant types on [Alex Bilbie's blog](https://alexbilbie.com/2013/02/a-guide-to-oauth-2-grants/) and [Aaron Parecki's blog](https://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified).

Here is a quick workflow of Authorization code grant type.

![web](https://blog.dreamfactory.com/hs-fs/hubfs/web.png?width=574&height=481&name=web.png)

In the figure above:

1. The client initiates the login request (A) using the user-agent (browser), which redirects the user (Resource Owner) to the authorization server prompting him/her to login.
2. The user authenticates/authorizes (B) through the user-agent.
3. After successful authentication and authorization, the Authorization Server redirects back to the client (C) with the authorization code.
4. The client then uses this authorization code to retrieve the Access Token (D).
5. The authorization server verifies the code and sends back the Access Token (E).
6. The client can now use this Access Token to access Resource Owner’s contents on the OAuth provider’s site.

## OAuth in DreamFactory 2.0

OAuth in DreamFactory 2.0 works just like other services in DreamFactory. It starts with provisioning an OAuth service using the Services tab in the DreamFactory 2.0 admin console. While provisioning the service you simply specify your OAuth service details such as key, secret, redirect url etc., as well as a default role. This role will be used for any users authenticating using your OAuth service. You can easily create a role in a DreamFactory 2.0 instance using the admin console.

Here is a short how-to guide on setting up an OAuth service with DreamFactory 2.0. We will start with setting up a role for our OAuth service.

## Creating a role in DreamFactory 2.0

 

1. Log into DreamFactory 2.0 admin console using your admin account and click on the "Roles" tab. 
2. From the left action pane, click on the "Create" button to create a new role. Provide a name and description for your role and make sure the "Active" checkbox is checked.
3. Once the basic role information is entered, click on the "Access" tab. This is where you specify what services/components your role can access. You can pick any services that are provisioned in the system and set the appropriate access level. For our OAuth service, I will allow access (GET, POST, PUT, PATCH, DELETE) to all components of the "files" service (a local storage service) and only allow GET requests to the "system" service and all sub-components of the "app" component.
4. Click on "Create Role" button to create the role "oauth\_role".

## Provisioning an OAuth service

 

1. From the admin console click on the "Services" tab and then click on the "Create" button from the left action pane. This will displaythe "Info" tab of the service creation page. Start by selecting a "Service Type". When you click on the service type drop down list you will see a list of all the supported service types in DreamFactory 2.0. Towards the bottom of this list you will find the four supported OAuth types under the group "OAuth". For our example, we will create a Facebook OAuth service. So, select Facebook OAuth from this list. Now provide a short, meaningful, one word name for your service. In this case I am simply using "facebook". Enter label, description, and check the ‘Active’ checkbox. 
2. After filling out the basic service information, click on the "Config" tab. Fill out this form, starting with selecting the Default Role that we created in the earlier steps. Enter your OAuth Client Id, Client Secret, Redirect URL, and optionally a CSS class to format as a button/icon to login with Facebook. Note: In order for OAuth to work with Facebook, you will need to set up an app on Facebook (https://developers.facebook.com/apps). Once you set up an app on Facebook, you will obtain your Client Id and Secret. Your redirect URL should be the URL of your app that the OAuth service provider (Facebook in this case) can use to reach back to your app with the Authorization Code. One important thing about the Redirect URL is that you will need to include your service name in it. In this case,I am including the service name as part of URL query string (?service=facebook). This is important because this is the only identifier of your service in your DreamFactory 2.0 instance. This is how your app will know which service to use for handling callbacks when Facebook calls back your application using this redirect URL. You will also need to provide this exact Redirect URL on your Facebook app. You can check out the [Facebook Developer docs](https://developers.facebook.com/docs/facebook-login/overview) to find out more on how to set up your Facebook app and obtain your Client Id and secret.
3. Click on the ‘Create Service’ button to create this OAuth service. Now you are all set to use your newly created Facebook OAuth service.

## Authenticating using OAuth service in DreamFactory 2.0

The ‘facebook’ OAuth service that we just created is now ready for your users to log into your app with their Facebook credentials. Users simply click on the ‘Login with Facebook’ button on your app. This should trigger the following POST call to your DreamFactory instance.

`curl -i -k -X POST https://example.com/api/v2/user/session -d {“service”:”facebook”}`

Or alternatively…

`curl -i -k -X POST https://example.com/api/v2/user/session?service=facebook`

If all goes well your app will get a response back that looks like below.

`{`  
`      "response": {`  
`          "redirect": true,`  
`          "url": "https://www.facebook.com/v2.4/dialog/oauth?client_id=15..."`  
`       }`  
`}`

The response includes a URL that redirects your users to the Facebook login page. Your app needs to handle this redirect in order to present the Facebook login page to your users. Once the user authenticates and authorizes access to their Facebook resources (currently just user information) the provider will redirect the user back to the app using the Redirect URL with the ‘Authorization Code’ as part of URL query string. Your app will need to extract this entire query string and make the following POST call to get a JWT (JSON Web Token) and successfully log into your DreamFactory instance.

`curl -i -k -X POST https://example.com/api/v2/user/session?oauth_callback=true&<query_string_from_callback>`

Your DreamFactory instance will then make two requests to the OAuth provider. First, it will use the Authorization Code (from the query string) to request the Access Token. Second, it will use the Access Token to make a request to fetch the basic user information. DreamFactory 2.0 will create a shadow user (if not already existing) using the user information from the OAuth provider’s site. Once the user is there it will then create a JWT for this user and establish an internal session and respond back with the following data.

`{`  
`      "session_token": “abc.123abc.efg”,`  
`      "session_id": “abc.123abc.efg”,`  
`      "id": 1,`  
`      "name": "John",`  
`      "first_name": "John",`  
`      "last_name": "Doe",`  
`      "email": "jdoe@gmail.com",`  
`      "is_sys_admin": false,`  
`      "last_login_date": "2015-06-30 16:46:59",`  
`      "host": "example.com"`  
`}`

The app needs to save the session\_token from this response locally. This is the JWT. The app will need to use this for every request it makes to your DreamFactory instance. Your app can pass this JWT in three different ways:

1. Using Authorization header: Authorization Bearer <jwt>
2. Using X-DreamFactory-Session-Token header.
3. Using session\_token url query parameter.

DreamFactory 2.0 also includes all active OAuth services in the system environment data. You can get the system environment data using a simple GET call …

`curl -i -k -X GET https://example.com/api/v2/system/environment`

The response from this call includes system authentication information, which shows the APIs and services available in the system for logging in. This will help you create a dynamic login UI based on the services available in the system. Here is a sample response from ‘system/environment’ call showing the OAuth services data.

`{`  
`…..`  
`     "authentication": {`  
`…..`  
`     "oauth": [`  
`          {`  
`               "path": "user/session?service=facebook",`  
`               "name": "facebook",`  
`               "label": "Facebook OAuth",`  
`               "verb": [`  
`               "GET",`  
`               "POST"`  
`                  ],`  
`               "type": "oauth_facebook",`  
`               "icon_class": "fa-facebook"`  
`           }`  
`              ]`  
`      },`  
`}`

---

With widespread adoption of OAuth as an authorization framework, DreamFactory's OAuth integration enables rapid and seamless connections to a wide variety of third party services.

Read about when we released DreamFactory 2.0!

https://blog.dreamfactory.com/dreamfactory-2-now-available/

TAGS: [Social Links Menu](https://blog.dreamfactory.com/tag/social-links-menu)

![Kevin McGahey](https://blog.dreamfactory.com/hs-fs/hubfs/KevinMcGahey.jpg?width=100&height=100&name=KevinMcGahey.jpg)

Kevin McGahey

Kevin McGahey is an accomplished solutions engineer and product lead with expertise in API generation, microservices, and legacy system modernization, as demonstrated by his successful track record of facilitating the modernization of legacy databases for numerous public sector organizations.

 Stay Connected with   
 The Connector Newsletter!

 Subscribe to stay up-to-date with DreamFactory's latest product updates, API best practices, and tech humor in your inbox.

[![Dreamfactory Logo](https://blog.dreamfactory.com/hubfs/raw_assets/public/dreamfactory/images/megamenu/Megamenu-logo.svg)](https://www.dreamfactory.com/)

[Call Sales +1 (415) 993-5877](tel:+14159935877)

Open – Mon–Fri 9–5 PT

[FREE 30 Minute Demo](https://www.dreamfactory.com/demo)

#### Follow us

- [GitHub](https://github.com/dreamfactorysoftware/dreamfactory)
- [Facebook](https://www.facebook.com/dfsoftwareinc/)
- [X (Twitter)](https://twitter.com/dfsoftwareinc)
- [LinkedIn](https://www.linkedin.com/company/dreamfactory-software)
- [YouTube](https://www.youtube.com/c/dreamfactorysoftware)

### Features

[Features](https://www.dreamfactory.com/features) [Self hosted](https://www.dreamfactory.com/features#self) [API Generation](https://www.dreamfactory.com/features#api) [Security](https://www.dreamfactory.com/features#secure) [Customization](https://www.dreamfactory.com/features#custom) [Pricing](https://www.dreamfactory.com/pricing)

### Installers

[Linux](https://www.dreamfactory.com/features#installer) [Docker](https://www.dreamfactory.com/features#installer) [Kubernetes](https://www.dreamfactory.com/features#installer)

### API Resources

[Documentation](https://docs.dreamfactory.com/) [Case Studies](https://www.dreamfactory.com/stories) [White Papers](https://www.dreamfactory.com/resources/whitepapers) [Academy](https://www.dreamfactory.com/academy) [API Calculator](https://calculator.dreamfactory.com) [Open Source](https://github.com/dreamfactorysoftware)

### Company

[Blog](https://blog.dreamfactory.com/) [Hub](https://www.dreamfactory.com/hub) [About us](https://www.dreamfactory.com/about) [Partners](https://www.dreamfactory.com/partners) [Support](https://www.dreamfactory.com/support) [Connectors](https://www.dreamfactory.com/connectors) [Contact Us](https://www.dreamfactory.com/demo)

 © 2025 DreamFactory. All rights reserved.

[Terms of Use](https://www.dreamfactory.com/terms-of-use) [Privacy Policy](https://www.dreamfactory.com/privacy-policy) [LLMs](https://www.dreamfactory.com/llms.txt)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Kevin McGahey",
    "url" : "https://blog.dreamfactory.com/author/kevin-mcgahey"
  },
  "dateModified" : "2025-07-14T19:19:09.326Z",
  "datePublished" : "2018-07-06T11:19:16.000Z",
  "headline" : "Using DreamFactory 2.0 with OAuth services",
  "image" : [ "https://blog.dreamfactory.com/hubfs/2.0.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.dreamfactory.com/using-dreamfactory-2-0-with-oauth-services",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.dreamfactory.com/hubfs/DreamFactory%20-%20Orange%20-%20Transparent-1.png"
    }
  }
}
```