OAuth Connection Guide
Welcome to the OAuth Connection Guide. This document provides detailed instructions on how to integrate your application with our OAuth authentication service using the Proof Key for Code Exchange (PKCE) method.
PKCE adds an additional layer of security for public clients and is highly recommended for single-page applications and mobile apps.
Prerequisites
Before you start, make sure you have:
- A basic understanding of OAuth 2.0 and PKCE.
- Access to the client application where you want to integrate OAuth.
- The ability to configure redirection URIs for your OAuth application.
Getting Started
To integrate with our OAuth service using PKCE, you'll need to perform some initial setup and ensure your environment meets the following requirements:
- Development Environment: Ensure you have a local server or a development environment capable of handling HTTP requests and responses.
- Client ID: Obtain your Client ID from our service which is outlined in this documentation.
- Redirect URI: Determine the URI where users will be redirected after authentication. This should be a route in your application that can handle the OAuth flow.
Once you have the prerequisites ready, you can proceed to configure your OAuth application.
OAuth Application Configuration
To securely integrate with our OAuth service using PKCE, you'll configure your application for different environments. Here are the configuration steps for the development environment:
Register & Configure App
Register your application with our OAuth service to get your client_id
. Since PKCE is being used, you won't need a client secret. Use the provided details as a reference:
{
"name": "set-id-oauth_playvs_test",
"client_id": "kwV597XmkmoaTa0v",
"scopes": "email profile",
"callback_url": "http://localhost:4000",
"authorize_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/authorize",
"token_fetch_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/token",
"user_info_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/userinfo",
}
{
"name": "set-id-oauth_playvs_develop_staging",
"client_id": "oeuy6wLaoVPYLTSz",
"scopes": "email profile",
"callback_url": "https://app-develop.staging.plvs.io/auth/vesl/oauth/callback",
"authorize_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/authorize",
"token_fetch_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/token",
"user_info_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/userinfo",
}
{
"name": "set-id-oauth_playvs_master_staging",
"client_id": "NTAbynWzdQ6Yvqgg",
"scopes": "email profile",
"callback_url": "https://app-master.staging.plvs.io/auth/vesl/oauth/callback",
"authorize_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/authorize",
"token_fetch_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/token",
"user_info_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/userinfo",
}
{
"name": "set-id-oauth_playvs_release_staging",
"client_id": "I0NidSWkfJOlbRGh",
"scopes": "email profile",
"callback_url": "https://app-release.staging.plvs.io/auth/vesl/oauth/callback",
"authorize_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/authorize",
"token_fetch_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/token",
"user_info_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/userinfo",
}
{
"name": "set-id-oauth_playvs_1_staging",
"client_id": "3nhPKMvneBZAWQO0",
"scopes": "email profile",
"callback_url": "https://app-1.staging.plvs.io/auth/vesl/oauth/callback",
"authorize_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/authorize",
"token_fetch_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/token",
"user_info_url": "https://optimal-wren-60.clerk.accounts.dev/oauth/userinfo",
}
{
"name": "set-id-oauth_playvs_prod",
"client_id": "JNN5JEyPvORV06GK",
"scopes": "email profile",
"callback_url": "https://app.playvs.com/auth/vesl/oauth/callback",
"authorize_url": "https://clerk.stiegleredtech.org/oauth/authorize",
"token_fetch_url": "https://clerk.stiegleredtech.org/oauth/token",
"user_info_url": "https://clerk.stiegleredtech.org/oauth/userinfo",
}
Scopes
Define the scopes required for your application. The scopes of email
and profile
are provided, but in the future, we can add a scope public_metadata
for custom information we might want to share on the user.