Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ory provider #10843

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions packages/core/src/providers/ory-hydra.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export interface OryHydraProfile extends Record<string, any> {
}

/**
* Add Ory Hydra login to your page.
* Add login with self-hosted Ory Hydra to your app.
*
* ### Setup
*
Expand Down Expand Up @@ -55,8 +55,12 @@ export interface OryHydraProfile extends Record<string, any> {
*
* ### Notes
*
* Ory Hydra can be setup using the default Ory Network setup or self hosted on your own
* Ory Hydra can be setup using the default Ory Network setup or self-hosted on your own
* infrastructure.
*
* This provider is best for self-hosted Ory Hydra instances. For the Ory Network, use the
* `Ory` provider.
*
* By default, Auth.js assumes that the Ory Hydra provider is
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
*
Expand All @@ -82,7 +86,7 @@ export default function OryHydra<P extends OryHydraProfile>(
): OIDCConfig<P> {
return {
id: "hydra",
name: "Hydra",
name: "Ory Hydra",
type: "oidc",
style: {
bg: "#fff",
Expand Down
100 changes: 100 additions & 0 deletions packages/core/src/providers/ory.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/**
* <div style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
* <span>Built-in <b>Ory</b> integration.</span>
* <a href="https://www.ory.sh/">
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/ory.svg" height="48" />
* </a>
* </div>
*
* @module providers/ory
*/
import type { OIDCConfig, OIDCUserConfig } from "./index.js"

export interface DefaultOryProfile extends Record<string, any> {
iss: string
ver: string
sub: string
aud: string
iat: string
exp: string
jti: string
amr: string
email?: string
email_verified?: boolean
preferred_username?: string
website?: string
given_name?: string
family_name?: string
name?: string
updated_at?: Date
}

/**
* Add login with Ory to your app.
*
* ### Setup
*
* #### Callback URL
*
* ```
* https://example.com/api/auth/callback/ory
* ```
*
* #### Configuration
*```js
* import Auth from "@auth/core"
* import Ory from "@auth/core/providers/ory"
*
* const request = new Request(origin)
* const response = await Auth(request, {
* providers: [Ory({
* clientId: ORY_CLIENT_ID,
* clientSecret: ORY_CLIENT_SECRET,
* issuer: ORY_SDK_URL // https://ory.yourdomain.com
* })],
* })
* ```
*
* ### Resources
*
* - [Ory + Auth.js integration](https://www.ory.sh/docs/getting-started/integrate-auth/auth-js)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page will be released once this PR is merged

* - [Ory Documentation](https://www.ory.sh/docs)
*
* ### Notes
*
* This set up is optimized for Ory Network, a managed service by Ory. To use Auth.js with self-hosted Ory Hydra, use the `OryHydra` provider.
*
* The Ory integration is based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
*
* :::tip
*
* The Ory provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/ory.ts).
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
*
* :::
*
* :::info **Disclaimer**
*
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
*
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
*
* :::
*/
export default function Ory<P extends DefaultOryProfile>(
options: OIDCUserConfig<P>
): OIDCConfig<P> {
return {
id: "ory",
name: "Ory",
type: 'oidc',
checks: ["pkce", "state", "nonce"],
style: {
bg: "#fff",
text: "#0F172A",
},
options,
}
}
Loading