If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: workos.com/docs/sso - Single Sign-On  WorkOS Docs.

site address: workos.com/docs/sso redirected to: workos.com/docs/sso

site title: Single Sign-On WorkOS Docs

Our opinion (on Saturday 18 July 2026 7:33:02 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:
description=Facilitate greater security, easier account management, and accelerated application onboarding and adoption.;

Headings (most frequently used words):

sso, on, to, single, sign, your, api, end, the, workos, add, endpoint, this, page, choose, integration, approach, how, works, what, you, ll, build, before, getting, started, object, definitions, 1add, app, 2configure, redirect, uri, 3test, awith, standalone, busing, authkit, install, sdk, set, secrets, an, initiate, callback, identity, provider, initiated,

Text of the page (most frequently used words):
workos (237), the (211), const (146), organization (95), #redirect (89), sso (70), app (67), env (64), from (53), profile (49), import (49), process (49), clientid (48), authentication (47), get (46), provider (45), callback (42), with (40), for (38), uri (37), res (36), redirect_uri (36), authorizationurl (36), redirecturi (36), next (35), you (35), use (35), workos_client_id (34), workos_api_key (34), test (33), dashboard (33), new (33), express (32), com (32), after (31), should (31), connection (31), inc (30), user (30), https (30), node (29), require (28), code (27), nextresponse (26), integration (25), started (25), when (24), return (24), authorization_url (24), your (22), auth (22), sign (21), real (21), this (20), org_test_idp (20), finish (20), replace (20), api (18), end (18), getauthorizationurl (18), _req (18), workos_client (16), client_id (16), api_key (16), workosclient (16), nextrequest (16), export (16), nextapiresponse (16), nextapirequest (16), used (15), single (14), that (14), information (13), idp (12), and (12), validate (12), organization_id (12), def (12), flask (12), req (12), get_authorization_url (12), client (11), googleoauth (11), add (10), using (10), further (10), business (10), logic (10), belongs (10), javascript (10), authenticate (10), connection_123 (10), default (9), endpoint (9), 401 (9), unauthorized (9), client_123456789 (9), sk_example_123456789 (9), security (8), status (8), saml (8), profile_and_token (8), request (8), _res (8), function (8), server (8), type (8), router (8), connection_id (8), guide (7), application (7), identity (7), uris (7), apps (7), reference (7), login (6), flows (6), can (6), their (6), sessions (6), parameter (6), message (6), organizationid (6), getprofileandtoken (6), await (6), async (6), searchparams (6), ruby (6), example (6), sdks (6), install (6), about (5), authorization (5), environment (5), initiate (5), initiated (5), which (5), domains (5), django (5), python (5), sdk (5), attributes (5), authkit (4), configure (4), get_profile_and_token (4), route (4), __name__ (4), sinatra (4), send (4), query (4), are (4), below (4), version (4), yarn (4), npm (4), getting (4), standalone (4), migrate (4), integrations (4), events (4), role (4), assignment (4), consent (4), prem (4), deployment (4), faq (4), teams (4), launch (4), checklist (4), jit (4), provisioning (4), signing (4), certificates (4), quick (4), start (4), how (3), page (3), staging (3), more (3), all (3), going (3), will (3), set (3), need (3), json (3), authenticated (3), there (3), redirect_to (3), connections (3), oidc (3), authenticating (3), account (3), via (3), secrets (3), choose (3), build (3), object (3), support (2), learn (2), read (2), available (2), specify (2), not (2), tenant (2), typically (2), url (2), section (2), redirects (2), applications (2), returned (2), email (2), organizations (2), users (2), permissiondenied (2), params (2), nexturl (2), let (2), handle (2), values (2), oauth (2), uses (2), help (2), through (2), state (2), between (2), workflow (2), configuration (2), variables (2), these (2), either (2), dependency (2), artifactid (2), groupid (2), gem (2), java (2), see (2), language (2), into (2), definitions (2), integrate (2), most (2), out (2), before (2), what (2), management (2), works (2), approach (2), mapping (2), roles (2), live (2), experience (2), search (2), docs (2), privacy, legal, careers, customers, company, pricing, podcast, blog, resources, changelog, documentation, developers, fine, grained, admin, portal, directory, sync, features, head, testing, common, detail, followed, already, configuring, however, customer, separate, settings, side, relaystate, normally, because, flow, wildcard, characters, found, multi, have, specified, multiple, sure, call, fetch, open, tab, allowed, previous, adding, important, always, unsafe, might, allow, addresses, outside, corporate, domain, guest, args, raise, exceptions, core, halt, sign_in_and_redirect, to_json, error, render, has, exchange, valid, minutes, issue, generating, details, supported, appleoauth, githuboauth, microsoftoauth, configured, level, also, mock, created, without, having, setting, specific, preferred, optional, encode, arbitrary, restore, responsible, handing, off, rest, couple, options, shown, examples, keys, signed, make, calls, provide, key, some, cases, store, managed, such, pass, them, directly, based, preferences, implementation, dependencies, command, don, contact, net, laravel, php, offers, native, several, popular, programming, languages, instructions, represents, contains, relevant, form, normalized, raw, method, group, follow, local, take, learning, poc, ing, way, first, acts, middleware, intentionally, does, database, service, compatible, any, supports, protocols, modeled, meet, framework, specification, abstracting, away, underlying, handshakes, different, idps, frequently, asked, requirement, looking, adopt, saas, enables, complete, platform, includes, box, covered, document, integrating, existing, stack, two, ways, copy, facilitate, greater, easier, accelerated, onboarding, adoption, feedback, press, homepage,


Text of the page (random words):
so get_authorization_url organization_id organization_id redirect_uri redirect_uri return redirect authorization_url from flask import flask redirect from workos import workosclient workos_client workosclient api_key sk_example_123456789 client_id client_123456789 app flask __name__ app route auth def auth use the test organization id to get started replace it with the user s real organization id when you finish the integration organization_id org_test_idp the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos_client sso get_authorization_url organization_id organization_id redirect_uri redirect_uri return redirect authorization_url you can also use the connection parameter for saml or oidc connections when authenticating a user by their connection id next js next js next js app router next js app router express express javascript javascript python ruby import type nextapirequest nextapiresponse from next import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export default _req nextapirequest res nextapiresponse a workos connection id const connection connection_123 the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl connection clientid redirecturi res redirect authorizationurl import nextrequest nextresponse from next server import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export function get _req nextrequest _res nextresponse a workos connection id const connection connection_123 the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl connection clientid redirecturi return nextresponse redirect authorizationurl const express require express const workos require workos inc node const app express const workos new workos process env workos_api_key const clientid process env workos_client_id app get auth _req res a workos connection id const connection connection_123 the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl connection clientid redirecturi res redirect authorizationurl import type nextapirequest nextapiresponse from next import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export default _req nextapirequest res nextapiresponse a workos connection id const connection connection_123 the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl connection clientid redirecturi res redirect authorizationurl import nextrequest nextresponse from next server import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export function get _req nextrequest _res nextresponse a workos connection id const connection connection_123 the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl connection clientid redirecturi return nextresponse redirect authorizationurl const express require express const workos require workos inc node const app express const workos new workos process env workos_api_key const clientid process env workos_client_id app get auth _req res a workos connection id const connection connection_123 the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl connection clientid redirecturi res redirect authorizationurl require workos workos workos client new api_key env workos_api_key client_id env workos_client_id def auth a workos connection id connection connection_123 the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos sso get_authorization_url connection connection redirect_uri redirect_uri redirect_to authorization_url end require sinatra require workos workos workos client new api_key env workos_api_key client_id env workos_client_id get auth do a workos connection id connection_id connection_123 the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos sso get_authorization_url connection connection_id redirect_uri redirect_uri redirect authorization_url end from django import redirect from workos import workosclient workos_client workosclient api_key sk_example_123456789 client_id client_123456789 def auth request a workos connection id connection_id connection_123 the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos_client sso get_authorization_url connection_id connection_id redirect_uri redirect_uri return redirect authorization_url from flask import flask redirect from workos import workosclient workos_client workosclient api_key sk_example_123456789 client_id client_123456789 app flask __name__ app route auth def auth a workos connection id connection_id connection_123 the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos_client sso get_authorization_url connection_id connection_id redirect_uri redirect_uri return redirect authorization_url the provider parameter is used for oauth connections which are configured at the environment level the supported provider values are googleoauth microsoftoauth githuboauth and appleoauth next js next js next js app router next js app router express express javascript javascript python ruby import type nextapirequest nextapiresponse from next import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export default _req nextapirequest res nextapiresponse the provider to authenticate with const provider googleoauth the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl provider redirecturi clientid res redirect authorizationurl import nextrequest nextresponse from next server import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export function get _req nextrequest _res nextresponse the provider to authenticate with const provider googleoauth the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl provider redirecturi clientid return nextresponse redirect authorizationurl const express require express const workos require workos inc node const app express const workos new workos process env workos_api_key const clientid process env workos_client_id app get auth _req res the provider to authenticate with const provider googleoauth the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl provider redirecturi clientid res redirect authorizationurl import type nextapirequest nextapiresponse from next import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export default _req nextapirequest res nextapiresponse the provider to authenticate with const provider googleoauth the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl provider redirecturi clientid res redirect authorizationurl import nextrequest nextresponse from next server import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export function get _req nextrequest _res nextresponse the provider to authenticate with const provider googleoauth the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl provider redirecturi clientid return nextresponse redirect authorizationurl const express require express const workos require workos inc node const app express const workos new workos process env workos_api_key const clientid process env workos_client_id app get auth _req res the provider to authenticate with const provider googleoauth the callback uri workos should redirect to after the authentication const redirecturi https dashboard my app com const authorizationurl workos sso getauthorizationurl provider redirecturi clientid res redirect authorizationurl require workos workos workos client new api_key env workos_api_key client_id env workos_client_id def auth the provider to authenticate with provider googleoauth the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos sso get_authorization_url provider provider redirect_uri redirect_uri redirect_to authorization_url end require sinatra require workos workos workos client new api_key env workos_api_key client_id env workos_client_id get auth do the provider to authenticate with provider googleoauth the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos sso get_authorization_url provider provider redirect_uri redirect_uri redirect authorization_url end from django import redirect from workos import workosclient workos_client workosclient api_key sk_example_123456789 client_id client_123456789 def auth request the provider to authenticate with provider googleoauth the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos_client sso get_authorization_url provider provider redirect_uri redirect_uri return redirect authorization_url from flask import flask redirect from workos import workosclient workos_client workosclient api_key sk_example_123456789 client_id client_123456789 app flask __name__ app route auth def auth the provider to authenticate with provider googleoauth the callback uri workos should redirect to after the authentication redirect_uri https dashboard my app com authorization_url workos_client sso get_authorization_url provider provider redirect_uri redirect_uri return redirect authorization_url if there is an issue generating an authorization url workos will return the redirect uri as is read the api reference for more details add a callback endpoint next let s add the redirect endpoint which will handle the callback from workos after a user has authenticated with their identity provider this endpoint should exchange the authorization code returned by workos with the authenticated user s profile the authorization code is valid for 10 minutes next js next js next js app router next js app router express express javascript javascript python ruby import type nextapirequest nextapiresponse from next import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export default async req nextapirequest res nextapiresponse const code req query const profile await workos sso getprofileandtoken code clientid use the test organization id to get started replace it with the user s real organization id when you finish the integration const organization org_test_idp validate that this profile belongs to the organization used for authentication if profile organizationid organization return res status 401 send message unauthorized use the information in profile for further business logic res redirect import nextrequest nextresponse from next server import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export async function get req nextrequest _res nextresponse const searchparams req nexturl searchparams const code searchparams get code const profile await workos sso getprofileandtoken code clientid use the test organization id to get started replace it with the user s real organization id when you finish the integration const organization org_test_idp validate that this profile belongs to the organization used for authentication if profile organizationid organization return nextresponse json message unauthorized status 401 use the information in profile for further business logic return nextresponse redirect const express require express const workos require workos inc node const app express const workos new workos process env workos_api_key const clientid process env workos_client_id app get callback async req res const code req query const profile await workos sso getprofileandtoken code clientid use the test organization id to get started replace it with the user s real organization id when you finish the integration const organization org_test_idp validate that this profile belongs to the organization used for authentication if profile organizationid organization return res status 401 send message unauthorized use the information in profile for further business logic res redirect import type nextapirequest nextapiresponse from next import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export default async req nextapirequest res nextapiresponse const code req query const profile await workos sso getprofileandtoken code clientid use the test organization id to get started replace it with the user s real organization id when you finish the integration const organization org_test_idp validate that this profile belongs to the organization used for authentication if profile organizationid organization return res status 401 send message unauthorized use the information in profile for further business logic res redirect import nextrequest nextresponse from next server import workos from workos inc node const workos new workos process env workos_api_key const clientid process env workos_client_id export async function get req nextrequest _res nextresponse const searchparams req nexturl searchparams const code searchparams get code const profile await workos sso getprofileandtoken code clientid use the test organization id to get started replace it with the user s real organization id when you finish the integration const organization org_test_idp valida...
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)

    No Images


    Verified site has: 51 subpage(s). Do you want to verify them? Verify pages:

    1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
    51-51


    The site also has references to the 2 subdomain(s)

      dashboard.workos.com  Verify   status.workos.com  Verify


    The site also has 3 references to external domain(s).

     github.com  Verify  twitter.com  Verify  linkedin.com  Verify


    Top 50 hastags from of all verified websites.

    Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

    Header

    HTTP/1.1 301 Moved Permanently
    Date Sat, 18 Jul 2026 07:33:01 GMT
    Content-Type text/html; charset=UTF-8
    Content-Length 167
    Connection close
    Location htt????/workos.com/docs/sso
    Server cloudflare
    CF-RAY a1cfcbbd0876a4bf-AMS
    HTTP/2 200
    date Sat, 18 Jul 2026 07:33:01 GMT
    content-type text/html
    cf-ray a1cfcbbd4e77d482-CDG
    cf-cache-status HIT
    cache-control public, max-age=300, stale-while-revalidate=86400
    content-signal ai-train=yes, search=yes, ai-input=yes
    last-modified Sat, 18 Jul 2026 00:28:35 GMT
    link <htt????/workos.com/llms.txt>; rel= alternate ; type= text/markdown ; title= LLM-friendly documentation index , <htt????/workos.com/docs/.well-known/api-catalog>; rel= api-catalog ; type= application/linkset+json
    server cloudflare
    cache-tag docs-content
    x-request-id 8328bdb2-16f0-4594-96b9-4902fc0d6004
    content-security-policy-report-only default-src self ; script-src self unsafe-inline unsafe-eval htt????/www.googletagmanager.com htt????/www.google-analytics.com htt????/*.google-analytics.com htt????/googleads.g.doubleclick.net htt????/www.googleadservices.com htt????/www.google.com htt????/cdn.segment.com htt????/js.hs-scripts.com htt????/js.hs-analytics.net htt????/js.hs-banner.com htt????/js.hsadspixel.net htt????/js.usemessages.com htt????/snap.licdn.com htt????/px.ads.linkedin.com htt????/tag.unifyintent.com htt????/*.unifyintent.com; style-src self unsafe-inline ; img-src self data: blob: https:; font-src self data: htt????/cdn.workos.com; connect-src self htt????/forwarder.workos.com htt????/api.workos.com htt????/*.algolia.net htt????/*.algolianet.com htt????/*.launchdarkly.com htt????/cdn.segment.com htt????/api.segment.io htt????/www.google-analytics.com htt????/*.google-analytics.com htt????/analytics.google.com htt????/*.analytics.google.com htt????/www.google.com htt????/stats.g.doubleclick.net htt????/api.hubapi.com htt????/*.hubspot.com htt????/*.unifyintent.com htt????/px.ads.linkedin.com htt????/d2nis22zuf6xa7.cloudfront.net; worker-src self blob:; frame-src self htt????/www.googletagmanager.com htt????/td.doubleclick.net htt????/*.hsforms.net htt????/app.hubspot.com; base-uri self ; object-src none ; frame-ancestors self
    etag W/ cc1738528d0652ef3824e20128c3e1e4
    content-encoding gzip

    Meta Tags

    title="Single Sign-On WorkOS Docs"
    content="Facilitate greater security, easier account management, and accelerated application onboarding and adoption." name="description"
    content="htt????/og-images.workos.com/api/docs/?t=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXRlZ29yeSI6IkRvY3MiLCJ0aXRsZSI6IlNpbmdsZSBTaWduLU9uIiwiZGVzY3JpcHRpb24iOiJGYWNpbGl0YXRlIGdyZWF0ZXIgc2VjdXJpdHksIGVhc2llciBhY2NvdW50IG1hbmFnZW1lbnQsIGFuZCBhY2NlbGVyYXRlZCBhcHBsaWNhdGlvbiBvbmJvYXJkaW5nIGFuZCBhZG9wdGlvbiIsImlhdCI6MTc4NDMzNDUxMn0.lEI_o1u7Wp2xhx8396vKfBwrZbiWDCiyLgh1zJyvA0E" itemprop="image"
    content="htt????/og-images.workos.com/api/docs/?t=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXRlZ29yeSI6IkRvY3MiLCJ0aXRsZSI6IlNpbmdsZSBTaWduLU9uIiwiZGVzY3JpcHRpb24iOiJGYWNpbGl0YXRlIGdyZWF0ZXIgc2VjdXJpdHksIGVhc2llciBhY2NvdW50IG1hbmFnZW1lbnQsIGFuZCBhY2NlbGVyYXRlZCBhcHBsaWNhdGlvbiBvbmJvYXJkaW5nIGFuZCBhZG9wdGlvbiIsImlhdCI6MTc4NDMzNDUxMn0.lEI_o1u7Wp2xhx8396vKfBwrZbiWDCiyLgh1zJyvA0E" name="image"
    content="Facilitate greater security, easier account management, and accelerated application onboarding and adoption." name="og:description"
    content="htt????/og-images.workos.com/api/docs/?t=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXRlZ29yeSI6IkRvY3MiLCJ0aXRsZSI6IlNpbmdsZSBTaWduLU9uIiwiZGVzY3JpcHRpb24iOiJGYWNpbGl0YXRlIGdyZWF0ZXIgc2VjdXJpdHksIGVhc2llciBhY2NvdW50IG1hbmFnZW1lbnQsIGFuZCBhY2NlbGVyYXRlZCBhcHBsaWNhdGlvbiBvbmJvYXJkaW5nIGFuZCBhZG9wdGlvbiIsImlhdCI6MTc4NDMzNDUxMn0.lEI_o1u7Wp2xhx8396vKfBwrZbiWDCiyLgh1zJyvA0E" property="og:image"
    content="Single Sign-On – WorkOS Docs" property="og:title"
    content="website" property="og:type"
    content="summary_large_image" name="twitter:card"
    content="Facilitate greater security, easier account management, and accelerated application onboarding and adoption." name="twitter:description"
    content="htt????/og-images.workos.com/api/docs/?t=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXRlZ29yeSI6IkRvY3MiLCJ0aXRsZSI6IlNpbmdsZSBTaWduLU9uIiwiZGVzY3JpcHRpb24iOiJGYWNpbGl0YXRlIGdyZWF0ZXIgc2VjdXJpdHksIGVhc2llciBhY2NvdW50IG1hbmFnZW1lbnQsIGFuZCBhY2NlbGVyYXRlZCBhcHBsaWNhdGlvbiBvbmJvYXJkaW5nIGFuZCBhZG9wdGlvbiIsImlhdCI6MTc4NDMzNDUxMn0.lEI_o1u7Wp2xhx8396vKfBwrZbiWDCiyLgh1zJyvA0E" name="twitter:image"
    content="Single Sign-On – WorkOS Docs" name="twitter:title"
    charset="utf-8"
    content="width=device-width, initial-scale=1" name="viewport"

    Load Info

    page size86267
    load time (s)0.156249
    redirect count1
    speed download552993
    server IP 104.18.41.116
    * all occurrences of the string "http://" have been changed to "htt???/"