@mulverse/mulguard-core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/adapters.d.ts +522 -0
- package/adapters.d.ts.map +1 -0
- package/adapters.js +170 -0
- package/errors.d.ts +429 -0
- package/errors.d.ts.map +1 -0
- package/errors.js +473 -0
- package/index.d.ts +547 -0
- package/index.d.ts.map +1 -0
- package/index.js +142 -0
- package/jwt.d.ts +132 -0
- package/jwt.d.ts.map +1 -0
- package/jwt.js +123 -0
- package/lib/actions/callback/handle-login.d.ts +35 -0
- package/lib/actions/callback/handle-login.d.ts.map +1 -0
- package/lib/actions/callback/handle-login.js +275 -0
- package/lib/actions/callback/index.d.ts +5 -0
- package/lib/actions/callback/index.d.ts.map +1 -0
- package/lib/actions/callback/index.js +409 -0
- package/lib/actions/callback/oauth/callback.d.ts +36 -0
- package/lib/actions/callback/oauth/callback.d.ts.map +1 -0
- package/lib/actions/callback/oauth/callback.js +248 -0
- package/lib/actions/callback/oauth/checks.d.ts +70 -0
- package/lib/actions/callback/oauth/checks.d.ts.map +1 -0
- package/lib/actions/callback/oauth/checks.js +188 -0
- package/lib/actions/callback/oauth/csrf-token.d.ts +33 -0
- package/lib/actions/callback/oauth/csrf-token.d.ts.map +1 -0
- package/lib/actions/callback/oauth/csrf-token.js +39 -0
- package/lib/actions/index.d.ts +6 -0
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +5 -0
- package/lib/actions/session.d.ts +5 -0
- package/lib/actions/session.d.ts.map +1 -0
- package/lib/actions/session.js +127 -0
- package/lib/actions/signin/authorization-url.d.ts +12 -0
- package/lib/actions/signin/authorization-url.d.ts.map +1 -0
- package/lib/actions/signin/authorization-url.js +94 -0
- package/lib/actions/signin/index.d.ts +4 -0
- package/lib/actions/signin/index.d.ts.map +1 -0
- package/lib/actions/signin/index.js +22 -0
- package/lib/actions/signin/send-token.d.ts +10 -0
- package/lib/actions/signin/send-token.d.ts.map +1 -0
- package/lib/actions/signin/send-token.js +98 -0
- package/lib/actions/signout.d.ts +11 -0
- package/lib/actions/signout.d.ts.map +1 -0
- package/lib/actions/signout.js +30 -0
- package/lib/actions/webauthn-options.d.ts +8 -0
- package/lib/actions/webauthn-options.d.ts.map +1 -0
- package/lib/actions/webauthn-options.js +60 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +70 -0
- package/lib/init.d.ts +25 -0
- package/lib/init.d.ts.map +1 -0
- package/lib/init.js +172 -0
- package/lib/pages/error.d.ts +17 -0
- package/lib/pages/error.d.ts.map +1 -0
- package/lib/pages/error.js +40 -0
- package/lib/pages/index.d.ts +42 -0
- package/lib/pages/index.d.ts.map +1 -0
- package/lib/pages/index.js +136 -0
- package/lib/pages/signin.d.ts +10 -0
- package/lib/pages/signin.d.ts.map +1 -0
- package/lib/pages/signin.js +75 -0
- package/lib/pages/signout.d.ts +8 -0
- package/lib/pages/signout.d.ts.map +1 -0
- package/lib/pages/signout.js +17 -0
- package/lib/pages/styles.d.ts +3 -0
- package/lib/pages/styles.d.ts.map +1 -0
- package/lib/pages/styles.js +381 -0
- package/lib/pages/verify-request.d.ts +8 -0
- package/lib/pages/verify-request.d.ts.map +1 -0
- package/lib/pages/verify-request.js +11 -0
- package/lib/symbols.d.ts +50 -0
- package/lib/symbols.d.ts.map +1 -0
- package/lib/symbols.js +57 -0
- package/lib/utils/actions.d.ts +3 -0
- package/lib/utils/actions.d.ts.map +1 -0
- package/lib/utils/actions.js +14 -0
- package/lib/utils/assert.d.ts +14 -0
- package/lib/utils/assert.d.ts.map +1 -0
- package/lib/utils/assert.js +168 -0
- package/lib/utils/callback-url.d.ts +17 -0
- package/lib/utils/callback-url.d.ts.map +1 -0
- package/lib/utils/callback-url.js +27 -0
- package/lib/utils/cookie.d.ts +111 -0
- package/lib/utils/cookie.d.ts.map +1 -0
- package/lib/utils/cookie.js +205 -0
- package/lib/utils/date.d.ts +7 -0
- package/lib/utils/date.d.ts.map +1 -0
- package/lib/utils/date.js +8 -0
- package/lib/utils/email.d.ts +20 -0
- package/lib/utils/email.d.ts.map +1 -0
- package/lib/utils/email.js +57 -0
- package/lib/utils/env.d.ts +9 -0
- package/lib/utils/env.d.ts.map +1 -0
- package/lib/utils/env.js +96 -0
- package/lib/utils/logger.d.ts +18 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +50 -0
- package/lib/utils/merge.d.ts +3 -0
- package/lib/utils/merge.d.ts.map +1 -0
- package/lib/utils/merge.js +23 -0
- package/lib/utils/providers.d.ts +19 -0
- package/lib/utils/providers.d.ts.map +1 -0
- package/lib/utils/providers.js +149 -0
- package/lib/utils/session.d.ts +7 -0
- package/lib/utils/session.d.ts.map +1 -0
- package/lib/utils/session.js +29 -0
- package/lib/utils/web.d.ts +10 -0
- package/lib/utils/web.d.ts.map +1 -0
- package/lib/utils/web.js +109 -0
- package/lib/utils/webauthn-client.d.ts +30 -0
- package/lib/utils/webauthn-client.d.ts.map +1 -0
- package/lib/utils/webauthn-client.js +197 -0
- package/lib/utils/webauthn-utils.d.ts +81 -0
- package/lib/utils/webauthn-utils.d.ts.map +1 -0
- package/lib/utils/webauthn-utils.js +343 -0
- package/lib/vendored/cookie.d.ts +120 -0
- package/lib/vendored/cookie.d.ts.map +1 -0
- package/lib/vendored/cookie.js +237 -0
- package/package.json +118 -0
- package/providers/42-school.d.ts +240 -0
- package/providers/42-school.d.ts.map +1 -0
- package/providers/42-school.js +78 -0
- package/providers/apple.d.ts +149 -0
- package/providers/apple.d.ts.map +1 -0
- package/providers/apple.js +104 -0
- package/providers/asgardeo.d.ts +102 -0
- package/providers/asgardeo.d.ts.map +1 -0
- package/providers/asgardeo.js +93 -0
- package/providers/atlassian.d.ts +94 -0
- package/providers/atlassian.d.ts.map +1 -0
- package/providers/atlassian.js +84 -0
- package/providers/auth0.d.ts +116 -0
- package/providers/auth0.d.ts.map +1 -0
- package/providers/auth0.js +49 -0
- package/providers/authentik.d.ts +90 -0
- package/providers/authentik.d.ts.map +1 -0
- package/providers/authentik.js +65 -0
- package/providers/azure-ad-b2c.d.ts +104 -0
- package/providers/azure-ad-b2c.d.ts.map +1 -0
- package/providers/azure-ad-b2c.js +100 -0
- package/providers/azure-ad.d.ts +19 -0
- package/providers/azure-ad.d.ts.map +1 -0
- package/providers/azure-ad.js +23 -0
- package/providers/azure-devops.d.ts +128 -0
- package/providers/azure-devops.d.ts.map +1 -0
- package/providers/azure-devops.js +158 -0
- package/providers/bankid-no.d.ts +134 -0
- package/providers/bankid-no.d.ts.map +1 -0
- package/providers/bankid-no.js +65 -0
- package/providers/battlenet.d.ts +85 -0
- package/providers/battlenet.d.ts.map +1 -0
- package/providers/battlenet.js +81 -0
- package/providers/beyondidentity.d.ts +77 -0
- package/providers/beyondidentity.d.ts.map +1 -0
- package/providers/beyondidentity.js +84 -0
- package/providers/bitbucket.d.ts +89 -0
- package/providers/bitbucket.d.ts.map +1 -0
- package/providers/bitbucket.js +92 -0
- package/providers/box.d.ts +63 -0
- package/providers/box.d.ts.map +1 -0
- package/providers/box.js +73 -0
- package/providers/boxyhq-saml.d.ts +121 -0
- package/providers/boxyhq-saml.d.ts.map +1 -0
- package/providers/boxyhq-saml.js +127 -0
- package/providers/bungie.d.ts +167 -0
- package/providers/bungie.d.ts.map +1 -0
- package/providers/bungie.js +174 -0
- package/providers/click-up.d.ts +75 -0
- package/providers/click-up.d.ts.map +1 -0
- package/providers/click-up.js +89 -0
- package/providers/cognito.d.ts +81 -0
- package/providers/cognito.d.ts.map +1 -0
- package/providers/cognito.js +73 -0
- package/providers/coinbase.d.ts +69 -0
- package/providers/coinbase.d.ts.map +1 -0
- package/providers/coinbase.js +78 -0
- package/providers/concept2.d.ts +81 -0
- package/providers/concept2.d.ts.map +1 -0
- package/providers/concept2.js +86 -0
- package/providers/credentials.d.ts +132 -0
- package/providers/credentials.d.ts.map +1 -0
- package/providers/credentials.js +74 -0
- package/providers/descope.d.ts +91 -0
- package/providers/descope.d.ts.map +1 -0
- package/providers/descope.js +78 -0
- package/providers/discord.d.ts +139 -0
- package/providers/discord.d.ts.map +1 -0
- package/providers/discord.js +86 -0
- package/providers/dribbble.d.ts +88 -0
- package/providers/dribbble.d.ts.map +1 -0
- package/providers/dribbble.js +85 -0
- package/providers/dropbox.d.ts +65 -0
- package/providers/dropbox.d.ts.map +1 -0
- package/providers/dropbox.js +88 -0
- package/providers/duende-identity-server6.d.ts +91 -0
- package/providers/duende-identity-server6.d.ts.map +1 -0
- package/providers/duende-identity-server6.js +80 -0
- package/providers/email.d.ts +41 -0
- package/providers/email.d.ts.map +1 -0
- package/providers/email.js +18 -0
- package/providers/eventbrite.d.ts +78 -0
- package/providers/eventbrite.d.ts.map +1 -0
- package/providers/eventbrite.js +88 -0
- package/providers/eveonline.d.ts +94 -0
- package/providers/eveonline.d.ts.map +1 -0
- package/providers/eveonline.js +92 -0
- package/providers/facebook.d.ts +84 -0
- package/providers/facebook.d.ts.map +1 -0
- package/providers/facebook.js +93 -0
- package/providers/faceit.d.ts +64 -0
- package/providers/faceit.d.ts.map +1 -0
- package/providers/faceit.js +74 -0
- package/providers/figma.d.ts +75 -0
- package/providers/figma.d.ts.map +1 -0
- package/providers/figma.js +81 -0
- package/providers/forwardemail.d.ts +4 -0
- package/providers/forwardemail.d.ts.map +1 -0
- package/providers/forwardemail.js +32 -0
- package/providers/foursquare.d.ts +71 -0
- package/providers/foursquare.d.ts.map +1 -0
- package/providers/foursquare.js +91 -0
- package/providers/freshbooks.d.ts +66 -0
- package/providers/freshbooks.d.ts.map +1 -0
- package/providers/freshbooks.js +76 -0
- package/providers/frontegg.d.ts +95 -0
- package/providers/frontegg.d.ts.map +1 -0
- package/providers/frontegg.js +88 -0
- package/providers/fusionauth.d.ts +279 -0
- package/providers/fusionauth.d.ts.map +1 -0
- package/providers/fusionauth.js +292 -0
- package/providers/github.d.ts +127 -0
- package/providers/github.d.ts.map +1 -0
- package/providers/github.js +115 -0
- package/providers/gitlab.d.ts +115 -0
- package/providers/gitlab.d.ts.map +1 -0
- package/providers/gitlab.js +75 -0
- package/providers/google.d.ts +138 -0
- package/providers/google.d.ts.map +1 -0
- package/providers/google.js +119 -0
- package/providers/hubspot.d.ts +76 -0
- package/providers/hubspot.d.ts.map +1 -0
- package/providers/hubspot.js +93 -0
- package/providers/huggingface.d.ts +216 -0
- package/providers/huggingface.d.ts.map +1 -0
- package/providers/huggingface.js +101 -0
- package/providers/identity-server4.d.ts +69 -0
- package/providers/identity-server4.d.ts.map +1 -0
- package/providers/identity-server4.js +64 -0
- package/providers/index.d.ts +61 -0
- package/providers/index.d.ts.map +1 -0
- package/providers/index.js +3 -0
- package/providers/instagram.d.ts +74 -0
- package/providers/instagram.d.ts.map +1 -0
- package/providers/instagram.js +87 -0
- package/providers/kakao.d.ts +148 -0
- package/providers/kakao.d.ts.map +1 -0
- package/providers/kakao.js +103 -0
- package/providers/keycloak.d.ts +100 -0
- package/providers/keycloak.d.ts.map +1 -0
- package/providers/keycloak.js +73 -0
- package/providers/kinde.d.ts +73 -0
- package/providers/kinde.d.ts.map +1 -0
- package/providers/kinde.js +51 -0
- package/providers/line.d.ts +83 -0
- package/providers/line.d.ts.map +1 -0
- package/providers/line.js +73 -0
- package/providers/linkedin.d.ts +77 -0
- package/providers/linkedin.d.ts.map +1 -0
- package/providers/linkedin.js +65 -0
- package/providers/logto.d.ts +98 -0
- package/providers/logto.d.ts.map +1 -0
- package/providers/logto.js +81 -0
- package/providers/loops.d.ts +40 -0
- package/providers/loops.d.ts.map +1 -0
- package/providers/loops.js +59 -0
- package/providers/mailchimp.d.ts +66 -0
- package/providers/mailchimp.d.ts.map +1 -0
- package/providers/mailchimp.js +76 -0
- package/providers/mailgun.d.ts +55 -0
- package/providers/mailgun.d.ts.map +1 -0
- package/providers/mailgun.js +74 -0
- package/providers/mailru.d.ts +63 -0
- package/providers/mailru.d.ts.map +1 -0
- package/providers/mailru.js +61 -0
- package/providers/mastodon.d.ts +90 -0
- package/providers/mastodon.d.ts.map +1 -0
- package/providers/mastodon.js +75 -0
- package/providers/mattermost.d.ts +132 -0
- package/providers/mattermost.d.ts.map +1 -0
- package/providers/mattermost.js +83 -0
- package/providers/medium.d.ts +68 -0
- package/providers/medium.d.ts.map +1 -0
- package/providers/medium.js +84 -0
- package/providers/microsoft-entra-id.d.ts +428 -0
- package/providers/microsoft-entra-id.d.ts.map +1 -0
- package/providers/microsoft-entra-id.js +156 -0
- package/providers/naver.d.ts +80 -0
- package/providers/naver.d.ts.map +1 -0
- package/providers/naver.js +79 -0
- package/providers/netlify.d.ts +66 -0
- package/providers/netlify.d.ts.map +1 -0
- package/providers/netlify.js +85 -0
- package/providers/netsuite.d.ts +189 -0
- package/providers/netsuite.d.ts.map +1 -0
- package/providers/netsuite.js +170 -0
- package/providers/nextcloud.d.ts +150 -0
- package/providers/nextcloud.d.ts.map +1 -0
- package/providers/nextcloud.js +99 -0
- package/providers/nodemailer.d.ts +27 -0
- package/providers/nodemailer.d.ts.map +1 -0
- package/providers/nodemailer.js +34 -0
- package/providers/notion.d.ts +99 -0
- package/providers/notion.d.ts.map +1 -0
- package/providers/notion.js +110 -0
- package/providers/oauth.d.ts +188 -0
- package/providers/oauth.d.ts.map +1 -0
- package/providers/oauth.js +1 -0
- package/providers/okta.d.ts +99 -0
- package/providers/okta.d.ts.map +1 -0
- package/providers/okta.js +63 -0
- package/providers/onelogin.d.ts +65 -0
- package/providers/onelogin.d.ts.map +1 -0
- package/providers/onelogin.js +61 -0
- package/providers/ory-hydra.d.ts +79 -0
- package/providers/ory-hydra.d.ts.map +1 -0
- package/providers/ory-hydra.js +67 -0
- package/providers/osso.d.ts +79 -0
- package/providers/osso.d.ts.map +1 -0
- package/providers/osso.js +77 -0
- package/providers/osu.d.ts +116 -0
- package/providers/osu.d.ts.map +1 -0
- package/providers/osu.js +75 -0
- package/providers/passage.d.ts +88 -0
- package/providers/passage.d.ts.map +1 -0
- package/providers/passage.js +75 -0
- package/providers/passkey.d.ts +65 -0
- package/providers/passkey.d.ts.map +1 -0
- package/providers/passkey.js +87 -0
- package/providers/patreon.d.ts +73 -0
- package/providers/patreon.d.ts.map +1 -0
- package/providers/patreon.js +77 -0
- package/providers/ping-id.d.ts +57 -0
- package/providers/ping-id.d.ts.map +1 -0
- package/providers/ping-id.js +40 -0
- package/providers/pinterest.d.ts +79 -0
- package/providers/pinterest.d.ts.map +1 -0
- package/providers/pinterest.js +85 -0
- package/providers/pipedrive.d.ts +99 -0
- package/providers/pipedrive.d.ts.map +1 -0
- package/providers/pipedrive.js +71 -0
- package/providers/postmark.d.ts +4 -0
- package/providers/postmark.d.ts.map +1 -0
- package/providers/postmark.js +36 -0
- package/providers/provider-types.d.ts +3 -0
- package/providers/provider-types.d.ts.map +1 -0
- package/providers/provider-types.js +1 -0
- package/providers/reddit.d.ts +88 -0
- package/providers/reddit.d.ts.map +1 -0
- package/providers/reddit.js +90 -0
- package/providers/resend.d.ts +4 -0
- package/providers/resend.d.ts.map +1 -0
- package/providers/resend.js +32 -0
- package/providers/roblox.d.ts +67 -0
- package/providers/roblox.d.ts.map +1 -0
- package/providers/roblox.js +53 -0
- package/providers/salesforce.d.ts +59 -0
- package/providers/salesforce.d.ts.map +1 -0
- package/providers/salesforce.js +52 -0
- package/providers/sendgrid.d.ts +4 -0
- package/providers/sendgrid.d.ts.map +1 -0
- package/providers/sendgrid.js +35 -0
- package/providers/simplelogin.d.ts +87 -0
- package/providers/simplelogin.d.ts.map +1 -0
- package/providers/simplelogin.js +83 -0
- package/providers/slack.d.ts +102 -0
- package/providers/slack.d.ts.map +1 -0
- package/providers/slack.js +69 -0
- package/providers/spotify.d.ts +75 -0
- package/providers/spotify.d.ts.map +1 -0
- package/providers/spotify.js +73 -0
- package/providers/strava.d.ts +68 -0
- package/providers/strava.d.ts.map +1 -0
- package/providers/strava.js +80 -0
- package/providers/threads.d.ts +108 -0
- package/providers/threads.d.ts.map +1 -0
- package/providers/threads.js +89 -0
- package/providers/tiktok.d.ts +248 -0
- package/providers/tiktok.d.ts.map +1 -0
- package/providers/tiktok.js +195 -0
- package/providers/todoist.d.ts +76 -0
- package/providers/todoist.d.ts.map +1 -0
- package/providers/todoist.js +97 -0
- package/providers/trakt.d.ts +93 -0
- package/providers/trakt.d.ts.map +1 -0
- package/providers/trakt.js +91 -0
- package/providers/twitch.d.ts +71 -0
- package/providers/twitch.d.ts.map +1 -0
- package/providers/twitch.js +96 -0
- package/providers/twitter.d.ts +183 -0
- package/providers/twitter.d.ts.map +1 -0
- package/providers/twitter.js +100 -0
- package/providers/united-effects.d.ts +80 -0
- package/providers/united-effects.d.ts.map +1 -0
- package/providers/united-effects.js +72 -0
- package/providers/vipps.d.ts +71 -0
- package/providers/vipps.d.ts.map +1 -0
- package/providers/vipps.js +33 -0
- package/providers/vk.d.ts +334 -0
- package/providers/vk.d.ts.map +1 -0
- package/providers/vk.js +103 -0
- package/providers/webauthn.d.ts +148 -0
- package/providers/webauthn.d.ts.map +1 -0
- package/providers/webauthn.js +128 -0
- package/providers/webex.d.ts +78 -0
- package/providers/webex.d.ts.map +1 -0
- package/providers/webex.js +73 -0
- package/providers/wechat.d.ts +78 -0
- package/providers/wechat.d.ts.map +1 -0
- package/providers/wechat.js +105 -0
- package/providers/wikimedia.d.ts +99 -0
- package/providers/wikimedia.d.ts.map +1 -0
- package/providers/wikimedia.js +90 -0
- package/providers/wordpress.d.ts +65 -0
- package/providers/wordpress.d.ts.map +1 -0
- package/providers/wordpress.js +71 -0
- package/providers/workos.d.ts +154 -0
- package/providers/workos.d.ts.map +1 -0
- package/providers/workos.js +143 -0
- package/providers/yandex.d.ts +131 -0
- package/providers/yandex.d.ts.map +1 -0
- package/providers/yandex.js +80 -0
- package/providers/zitadel.d.ts +117 -0
- package/providers/zitadel.d.ts.map +1 -0
- package/providers/zitadel.js +95 -0
- package/providers/zoho.d.ts +63 -0
- package/providers/zoho.d.ts.map +1 -0
- package/providers/zoho.js +79 -0
- package/providers/zoom.d.ts +93 -0
- package/providers/zoom.d.ts.map +1 -0
- package/providers/zoom.js +82 -0
- package/src/adapters/server-actions-helpers.ts +126 -0
- package/src/adapters.ts +603 -0
- package/src/errors.ts +551 -0
- package/src/index.ts +689 -0
- package/src/jwt.ts +283 -0
- package/src/lib/actions/callback/handle-login.ts +334 -0
- package/src/lib/actions/callback/index.ts +554 -0
- package/src/lib/actions/callback/oauth/callback.ts +347 -0
- package/src/lib/actions/callback/oauth/checks.ts +258 -0
- package/src/lib/actions/callback/oauth/csrf-token.ts +60 -0
- package/src/lib/actions/index.ts +5 -0
- package/src/lib/actions/session.ts +167 -0
- package/src/lib/actions/signin/authorization-url.ts +123 -0
- package/src/lib/actions/signin/index.ts +37 -0
- package/src/lib/actions/signin/send-token.ts +124 -0
- package/src/lib/actions/signout.ts +38 -0
- package/src/lib/actions/webauthn-options.ts +100 -0
- package/src/lib/index.ts +97 -0
- package/src/lib/init.ts +236 -0
- package/src/lib/pages/error.tsx +106 -0
- package/src/lib/pages/index.ts +181 -0
- package/src/lib/pages/signin.tsx +255 -0
- package/src/lib/pages/signout.tsx +49 -0
- package/src/lib/pages/styles.css +377 -0
- package/src/lib/pages/styles.ts +381 -0
- package/src/lib/pages/verify-request.tsx +36 -0
- package/src/lib/symbols.ts +60 -0
- package/src/lib/utils/actions.ts +17 -0
- package/src/lib/utils/assert.ts +259 -0
- package/src/lib/utils/callback-url.ts +42 -0
- package/src/lib/utils/cookie.ts +248 -0
- package/src/lib/utils/date.ts +8 -0
- package/src/lib/utils/email.ts +65 -0
- package/src/lib/utils/env.ts +113 -0
- package/src/lib/utils/logger.ts +75 -0
- package/src/lib/utils/merge.ts +30 -0
- package/src/lib/utils/providers.ts +203 -0
- package/src/lib/utils/session.ts +41 -0
- package/src/lib/utils/web.ts +151 -0
- package/src/lib/utils/webauthn-client.js +229 -0
- package/src/lib/utils/webauthn-utils.ts +531 -0
- package/src/lib/vendored/cookie.ts +383 -0
- package/src/providers/42-school.ts +256 -0
- package/src/providers/apple.ts +206 -0
- package/src/providers/asgardeo.ts +118 -0
- package/src/providers/atlassian.ts +120 -0
- package/src/providers/auth0.ts +127 -0
- package/src/providers/authentik.ts +100 -0
- package/src/providers/azure-ad-b2c.ts +124 -0
- package/src/providers/azure-ad.ts +30 -0
- package/src/providers/azure-devops.ts +184 -0
- package/src/providers/bankid-no.ts +161 -0
- package/src/providers/battlenet.ts +107 -0
- package/src/providers/beyondidentity.ts +102 -0
- package/src/providers/bitbucket.ts +122 -0
- package/src/providers/box.ts +87 -0
- package/src/providers/boxyhq-saml.ts +148 -0
- package/src/providers/bungie.ts +192 -0
- package/src/providers/click-up.ts +104 -0
- package/src/providers/cognito.ts +94 -0
- package/src/providers/coinbase.ts +93 -0
- package/src/providers/concept2.ts +108 -0
- package/src/providers/credentials.ts +157 -0
- package/src/providers/descope.ts +105 -0
- package/src/providers/discord.ts +176 -0
- package/src/providers/dribbble.ts +122 -0
- package/src/providers/dropbox.ts +102 -0
- package/src/providers/duende-identity-server6.ts +101 -0
- package/src/providers/email.ts +60 -0
- package/src/providers/eventbrite.ts +105 -0
- package/src/providers/eveonline.ts +117 -0
- package/src/providers/facebook.ts +119 -0
- package/src/providers/faceit.ts +90 -0
- package/src/providers/figma.ts +105 -0
- package/src/providers/forwardemail.ts +37 -0
- package/src/providers/foursquare.ts +105 -0
- package/src/providers/freshbooks.ts +90 -0
- package/src/providers/frontegg.ts +111 -0
- package/src/providers/fusionauth.ts +336 -0
- package/src/providers/github.ts +187 -0
- package/src/providers/gitlab.ts +140 -0
- package/src/providers/google.ts +152 -0
- package/src/providers/hubspot.ts +117 -0
- package/src/providers/huggingface.ts +234 -0
- package/src/providers/identity-server4.ts +78 -0
- package/src/providers/index.ts +115 -0
- package/src/providers/instagram.ts +103 -0
- package/src/providers/kakao.ts +184 -0
- package/src/providers/keycloak.ts +111 -0
- package/src/providers/kinde.ts +85 -0
- package/src/providers/line.ts +99 -0
- package/src/providers/linkedin.ts +91 -0
- package/src/providers/logto.ts +122 -0
- package/src/providers/loops.ts +79 -0
- package/src/providers/mailchimp.ts +90 -0
- package/src/providers/mailgun.ts +98 -0
- package/src/providers/mailru.ts +75 -0
- package/src/providers/mastodon.ts +112 -0
- package/src/providers/mattermost.ts +154 -0
- package/src/providers/medium.ts +89 -0
- package/src/providers/microsoft-entra-id.ts +497 -0
- package/src/providers/naver.ts +102 -0
- package/src/providers/netlify.ts +90 -0
- package/src/providers/netsuite.ts +225 -0
- package/src/providers/nextcloud.ts +207 -0
- package/src/providers/nodemailer.ts +84 -0
- package/src/providers/notion.ts +166 -0
- package/src/providers/oauth.ts +310 -0
- package/src/providers/okta.ts +111 -0
- package/src/providers/onelogin.ts +75 -0
- package/src/providers/ory-hydra.ts +93 -0
- package/src/providers/osso.ts +91 -0
- package/src/providers/osu.ts +138 -0
- package/src/providers/passage.ts +103 -0
- package/src/providers/passkey.ts +94 -0
- package/src/providers/patreon.ts +98 -0
- package/src/providers/ping-id.ts +68 -0
- package/src/providers/pinterest.ts +106 -0
- package/src/providers/pipedrive.ts +120 -0
- package/src/providers/postmark.ts +38 -0
- package/src/providers/provider-types.ts +107 -0
- package/src/providers/reddit.ts +104 -0
- package/src/providers/resend.ts +35 -0
- package/src/providers/roblox.ts +94 -0
- package/src/providers/salesforce.ts +73 -0
- package/src/providers/sendgrid.ts +36 -0
- package/src/providers/simplelogin.ts +107 -0
- package/src/providers/slack.ts +115 -0
- package/src/providers/spotify.ts +99 -0
- package/src/providers/strava.ts +101 -0
- package/src/providers/threads.ts +135 -0
- package/src/providers/tiktok.ts +319 -0
- package/src/providers/todoist.ts +122 -0
- package/src/providers/trakt.ts +120 -0
- package/src/providers/twitch.ts +121 -0
- package/src/providers/twitter.ts +207 -0
- package/src/providers/united-effects.ts +89 -0
- package/src/providers/vipps.ts +86 -0
- package/src/providers/vk.ts +401 -0
- package/src/providers/webauthn.ts +296 -0
- package/src/providers/webex.ts +102 -0
- package/src/providers/wechat.ts +141 -0
- package/src/providers/wikimedia.ts +258 -0
- package/src/providers/wordpress.ts +86 -0
- package/src/providers/workos.ts +180 -0
- package/src/providers/yandex.ts +159 -0
- package/src/providers/zitadel.ts +128 -0
- package/src/providers/zoho.ts +84 -0
- package/src/providers/zoom.ts +119 -0
- package/src/types.ts +430 -0
- package/src/warnings.ts +21 -0
- package/types.d.ts +309 -0
- package/types.d.ts.map +1 -0
- package/types.js +53 -0
- package/warnings.d.ts +17 -0
- package/warnings.d.ts.map +1 -0
- package/warnings.js +1 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import type { Client, PrivateKey } from "oauth4webapi"
|
|
2
|
+
import type { CommonProviderOptions } from "../providers/index.js"
|
|
3
|
+
import type { Awaitable, Profile, TokenSet, User } from "../types.js"
|
|
4
|
+
import type { AuthConfig } from "../index.js"
|
|
5
|
+
import type { conformInternal, customFetch } from "../lib/symbols.js"
|
|
6
|
+
|
|
7
|
+
// TODO: fix types
|
|
8
|
+
type AuthorizationParameters = any
|
|
9
|
+
type CallbackParamsType = any
|
|
10
|
+
type IssuerMetadata = any
|
|
11
|
+
type OAuthCallbackChecks = any
|
|
12
|
+
type OpenIDCallbackChecks = any
|
|
13
|
+
|
|
14
|
+
export type { OAuthProviderId } from "./provider-types.js"
|
|
15
|
+
|
|
16
|
+
export type OAuthChecks = OpenIDCallbackChecks | OAuthCallbackChecks
|
|
17
|
+
|
|
18
|
+
type PartialIssuer = Partial<Pick<IssuerMetadata, "jwks_endpoint" | "issuer">>
|
|
19
|
+
|
|
20
|
+
type UrlParams = Record<string, unknown>
|
|
21
|
+
|
|
22
|
+
type EndpointRequest<C, R, P> = (
|
|
23
|
+
context: C & {
|
|
24
|
+
/** Provider is passed for convenience, and also contains the `callbackUrl`. */
|
|
25
|
+
provider: OAuthConfigInternal<P> & {
|
|
26
|
+
signinUrl: string
|
|
27
|
+
callbackUrl: string
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
) => Awaitable<R> | void
|
|
31
|
+
|
|
32
|
+
/** Gives granular control of the request to the given endpoint */
|
|
33
|
+
interface AdvancedEndpointHandler<P extends UrlParams, C, R> {
|
|
34
|
+
/** Endpoint URL. Can contain parameters. Optionally, you can use `params` */
|
|
35
|
+
url?: string
|
|
36
|
+
/** These will be prepended to the `url` */
|
|
37
|
+
params?: P
|
|
38
|
+
/**
|
|
39
|
+
* Control the corresponding OAuth endpoint request completely.
|
|
40
|
+
* Useful if your provider relies on some custom behaviour
|
|
41
|
+
* or it diverges from the OAuth spec.
|
|
42
|
+
*
|
|
43
|
+
* - ⚠ **This is an advanced option.**
|
|
44
|
+
* You should **try to avoid using advanced options** unless you are very comfortable using them.
|
|
45
|
+
*/
|
|
46
|
+
request?: EndpointRequest<C, R, P>
|
|
47
|
+
/** @internal */
|
|
48
|
+
conform?: (response: Response) => Awaitable<Response | undefined>
|
|
49
|
+
clientPrivateKey?: CryptoKey | PrivateKey
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Either an URL (containing all the parameters) or an object with more granular control.
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export type EndpointHandler<
|
|
57
|
+
P extends UrlParams,
|
|
58
|
+
C = any,
|
|
59
|
+
R = any,
|
|
60
|
+
> = AdvancedEndpointHandler<P, C, R>
|
|
61
|
+
|
|
62
|
+
export type AuthorizationEndpointHandler =
|
|
63
|
+
EndpointHandler<AuthorizationParameters>
|
|
64
|
+
|
|
65
|
+
export type TokenEndpointHandler = EndpointHandler<
|
|
66
|
+
UrlParams,
|
|
67
|
+
{
|
|
68
|
+
/**
|
|
69
|
+
* Parameters extracted from the request to the `/api/auth/callback/:providerId` endpoint.
|
|
70
|
+
* Contains params like `state`.
|
|
71
|
+
*/
|
|
72
|
+
params: CallbackParamsType
|
|
73
|
+
/**
|
|
74
|
+
* When using this custom flow, make sure to do all the necessary security checks.
|
|
75
|
+
* This object contains parameters you have to match against the request to make sure it is valid.
|
|
76
|
+
*/
|
|
77
|
+
checks: OAuthChecks
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
tokens: TokenSet
|
|
81
|
+
}
|
|
82
|
+
>
|
|
83
|
+
|
|
84
|
+
export type UserinfoEndpointHandler = EndpointHandler<
|
|
85
|
+
UrlParams,
|
|
86
|
+
{ tokens: TokenSet },
|
|
87
|
+
Profile
|
|
88
|
+
>
|
|
89
|
+
|
|
90
|
+
export type ProfileCallback<Profile> = (
|
|
91
|
+
profile: Profile,
|
|
92
|
+
tokens: TokenSet
|
|
93
|
+
) => Awaitable<User>
|
|
94
|
+
|
|
95
|
+
export type AccountCallback = (tokens: TokenSet) => TokenSet | undefined | void
|
|
96
|
+
|
|
97
|
+
export interface OAuthProviderButtonStyles {
|
|
98
|
+
logo?: string
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated
|
|
101
|
+
*/
|
|
102
|
+
text?: string
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated Please use 'brandColor' instead
|
|
105
|
+
*/
|
|
106
|
+
bg?: string
|
|
107
|
+
brandColor?: string
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/** TODO: Document */
|
|
111
|
+
export interface OAuth2Config<Profile>
|
|
112
|
+
extends CommonProviderOptions,
|
|
113
|
+
PartialIssuer {
|
|
114
|
+
/**
|
|
115
|
+
* Identifies the provider when you want to sign in to
|
|
116
|
+
* a specific provider.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* signIn('github') // "github" is the provider ID
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
id: string
|
|
124
|
+
/** The name of the provider. shown on the default sign in page. */
|
|
125
|
+
name: string
|
|
126
|
+
/**
|
|
127
|
+
* OpenID Connect (OIDC) compliant providers can configure
|
|
128
|
+
* this instead of `authorize`/`token`/`userinfo` options
|
|
129
|
+
* without further configuration needed in most cases.
|
|
130
|
+
* You can still use the `authorize`/`token`/`userinfo`
|
|
131
|
+
* options for advanced control.
|
|
132
|
+
*
|
|
133
|
+
* [Authorization Server Metadata](https://datatracker.ietf.org/doc/html/rfc8414#section-3)
|
|
134
|
+
*/
|
|
135
|
+
wellKnown?: string
|
|
136
|
+
issuer?: string
|
|
137
|
+
/**
|
|
138
|
+
* The login process will be initiated by sending the user to this URL.
|
|
139
|
+
*
|
|
140
|
+
* [Authorization endpoint](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1)
|
|
141
|
+
*/
|
|
142
|
+
authorization?: string | AuthorizationEndpointHandler
|
|
143
|
+
token?: string | TokenEndpointHandler
|
|
144
|
+
userinfo?: string | UserinfoEndpointHandler
|
|
145
|
+
type: "oauth"
|
|
146
|
+
/**
|
|
147
|
+
* Receives the full {@link Profile} returned by the OAuth provider, and returns a subset.
|
|
148
|
+
* It is used to create the user in the database.
|
|
149
|
+
*
|
|
150
|
+
* Defaults to: `id`, `email`, `name`, `image`
|
|
151
|
+
*
|
|
152
|
+
* @see [Database Adapter: User model](https://authjs.dev/reference/core/adapters#user)
|
|
153
|
+
*/
|
|
154
|
+
profile?: ProfileCallback<Profile>
|
|
155
|
+
/**
|
|
156
|
+
* Receives the full {@link TokenSet} returned by the OAuth provider, and returns a subset.
|
|
157
|
+
* It is used to create the account associated with a user in the database.
|
|
158
|
+
*
|
|
159
|
+
* :::note
|
|
160
|
+
* You need to adjust your database's [Account model](https://authjs.dev/reference/core/adapters#account) to match the returned properties.
|
|
161
|
+
* Check out the documentation of your [database adapter](https://authjs.dev/reference/core/adapters) for more information.
|
|
162
|
+
* :::
|
|
163
|
+
*
|
|
164
|
+
* Defaults to: `access_token`, `id_token`, `refresh_token`, `expires_at`, `scope`, `token_type`, `session_state`
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```ts
|
|
168
|
+
* import GitHub from "@auth/core/providers/github"
|
|
169
|
+
* // ...
|
|
170
|
+
* GitHub({
|
|
171
|
+
* account(account) {
|
|
172
|
+
* // https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens#refreshing-a-user-access-token-with-a-refresh-token
|
|
173
|
+
* const refresh_token_expires_at =
|
|
174
|
+
* Math.floor(Date.now() / 1000) + Number(account.refresh_token_expires_in)
|
|
175
|
+
* return {
|
|
176
|
+
* access_token: account.access_token,
|
|
177
|
+
* expires_at: account.expires_at,
|
|
178
|
+
* refresh_token: account.refresh_token,
|
|
179
|
+
* refresh_token_expires_at
|
|
180
|
+
* }
|
|
181
|
+
* }
|
|
182
|
+
* })
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @see [Database Adapter: Account model](https://authjs.dev/reference/core/adapters#account)
|
|
186
|
+
* @see https://openid.net/specs/openid-connect-core-1_0.html#TokenResponse
|
|
187
|
+
* @see https://www.ietf.org/rfc/rfc6749.html#section-5.1
|
|
188
|
+
*/
|
|
189
|
+
account?: AccountCallback
|
|
190
|
+
/**
|
|
191
|
+
* The CSRF protection performed on the callback endpoint.
|
|
192
|
+
* @default ["pkce"]
|
|
193
|
+
*
|
|
194
|
+
* @note When `redirectProxyUrl` or {@link AuthConfig.redirectProxyUrl} is set,
|
|
195
|
+
* `"state"` will be added to checks automatically.
|
|
196
|
+
*
|
|
197
|
+
* [RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients (PKCE)](https://www.rfc-editor.org/rfc/rfc7636.html#section-4) |
|
|
198
|
+
* [RFC 6749 - The OAuth 2.0 Authorization Framework](https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.1) |
|
|
199
|
+
* [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) |
|
|
200
|
+
*/
|
|
201
|
+
checks?: Array<"pkce" | "state" | "none">
|
|
202
|
+
clientId?: string
|
|
203
|
+
clientSecret?: string
|
|
204
|
+
/**
|
|
205
|
+
* Pass overrides to the underlying OAuth library.
|
|
206
|
+
* See [`oauth4webapi` client](https://github.com/panva/oauth4webapi/blob/main/docs/interfaces/Client.md) for details.
|
|
207
|
+
*/
|
|
208
|
+
client?: Partial<Client & { token_endpoint_auth_method: string }>
|
|
209
|
+
style?: OAuthProviderButtonStyles
|
|
210
|
+
/**
|
|
211
|
+
* Normally, when you sign in with an OAuth provider and another account
|
|
212
|
+
* with the same email address already exists,
|
|
213
|
+
* the accounts are not linked automatically.
|
|
214
|
+
*
|
|
215
|
+
* Automatic account linking on sign in is not secure
|
|
216
|
+
* between arbitrary providers and is disabled by default.
|
|
217
|
+
* Learn more in our [Security FAQ](https://authjs.dev/concepts#security).
|
|
218
|
+
*
|
|
219
|
+
* However, it may be desirable to allow automatic account linking if you trust that the provider involved has securely verified the email address
|
|
220
|
+
* associated with the account. Set `allowDangerousEmailAccountLinking: true`
|
|
221
|
+
* to enable automatic account linking.
|
|
222
|
+
*/
|
|
223
|
+
allowDangerousEmailAccountLinking?: boolean
|
|
224
|
+
redirectProxyUrl?: AuthConfig["redirectProxyUrl"]
|
|
225
|
+
/** @see {customFetch} */
|
|
226
|
+
[customFetch]?: typeof fetch
|
|
227
|
+
/**
|
|
228
|
+
* The options provided by the user.
|
|
229
|
+
* We will perform a deep-merge of these values
|
|
230
|
+
* with the default configuration.
|
|
231
|
+
*
|
|
232
|
+
* @internal
|
|
233
|
+
*/
|
|
234
|
+
/** @see {conformInternal} */
|
|
235
|
+
[conformInternal]?: true
|
|
236
|
+
options?: OAuthUserConfig<Profile>
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Extension of the {@link OAuth2Config}.
|
|
241
|
+
*
|
|
242
|
+
* @see https://openid.net/specs/openid-connect-core-1_0.html
|
|
243
|
+
*/
|
|
244
|
+
export interface OIDCConfig<Profile>
|
|
245
|
+
extends Omit<OAuth2Config<Profile>, "type" | "checks"> {
|
|
246
|
+
type: "oidc"
|
|
247
|
+
checks?: Array<NonNullable<OAuth2Config<Profile>["checks"]>[number] | "nonce">
|
|
248
|
+
/**
|
|
249
|
+
* If set to `false`, the `userinfo_endpoint` will be fetched for the user data.
|
|
250
|
+
* @note An `id_token` is still required to be returned during the authorization flow.
|
|
251
|
+
*/
|
|
252
|
+
idToken?: boolean
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export type OAuthConfig<Profile> = OIDCConfig<Profile> | OAuth2Config<Profile>
|
|
256
|
+
|
|
257
|
+
export type OAuthEndpointType = "authorization" | "token" | "userinfo"
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* We parsed `authorization`, `token` and `userinfo`
|
|
261
|
+
* to always contain a valid `URL`, with the params
|
|
262
|
+
* @internal
|
|
263
|
+
*/
|
|
264
|
+
export type OAuthConfigInternal<Profile> = Omit<
|
|
265
|
+
OAuthConfig<Profile>,
|
|
266
|
+
OAuthEndpointType | "redirectProxyUrl"
|
|
267
|
+
> & {
|
|
268
|
+
authorization?: { url: URL }
|
|
269
|
+
token?: {
|
|
270
|
+
url: URL
|
|
271
|
+
request?: TokenEndpointHandler["request"]
|
|
272
|
+
clientPrivateKey?: CryptoKey | PrivateKey
|
|
273
|
+
/**
|
|
274
|
+
* @internal
|
|
275
|
+
* @deprecated
|
|
276
|
+
*/
|
|
277
|
+
conform?: TokenEndpointHandler["conform"]
|
|
278
|
+
}
|
|
279
|
+
userinfo?: { url: URL; request?: UserinfoEndpointHandler["request"] }
|
|
280
|
+
/**
|
|
281
|
+
* Reconstructed from {@link OAuth2Config.redirectProxyUrl},
|
|
282
|
+
* adding the callback action and provider id onto the URL.
|
|
283
|
+
*
|
|
284
|
+
* If defined, it is favoured over {@link OAuthConfigInternal.callbackUrl} in the authorization request.
|
|
285
|
+
*
|
|
286
|
+
* When {@link InternalOptions.isOnRedirectProxy} is set, the actual value is saved in the decoded `state.origin` parameter.
|
|
287
|
+
*
|
|
288
|
+
* @example `"https://auth.example.com/api/auth/callback/:provider"`
|
|
289
|
+
*
|
|
290
|
+
*/
|
|
291
|
+
redirectProxyUrl?: OAuth2Config<Profile>["redirectProxyUrl"]
|
|
292
|
+
} & Pick<
|
|
293
|
+
Required<OAuthConfig<Profile>>,
|
|
294
|
+
"clientId" | "checks" | "profile" | "account"
|
|
295
|
+
>
|
|
296
|
+
|
|
297
|
+
export type OIDCConfigInternal<Profile> = OAuthConfigInternal<Profile> & {
|
|
298
|
+
checks: OIDCConfig<Profile>["checks"]
|
|
299
|
+
idToken: OIDCConfig<Profile>["idToken"]
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export type OAuthUserConfig<Profile> = Omit<
|
|
303
|
+
Partial<OAuthConfig<Profile>>,
|
|
304
|
+
"options" | "type"
|
|
305
|
+
>
|
|
306
|
+
|
|
307
|
+
export type OIDCUserConfig<Profile> = Omit<
|
|
308
|
+
Partial<OIDCConfig<Profile>>,
|
|
309
|
+
"options" | "type"
|
|
310
|
+
>
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Okta</b> integration.</span>
|
|
4
|
+
* <a href="https://okta.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/okta.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/okta
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface OktaProfile extends Record<string, any> {
|
|
14
|
+
iss: string
|
|
15
|
+
ver: string
|
|
16
|
+
sub: string
|
|
17
|
+
aud: string
|
|
18
|
+
iat: string
|
|
19
|
+
exp: string
|
|
20
|
+
jti: string
|
|
21
|
+
auth_time: string
|
|
22
|
+
amr: string
|
|
23
|
+
idp: string
|
|
24
|
+
nonce: string
|
|
25
|
+
name: string
|
|
26
|
+
nickname: string
|
|
27
|
+
preferred_username: string
|
|
28
|
+
given_name: string
|
|
29
|
+
middle_name: string
|
|
30
|
+
family_name: string
|
|
31
|
+
email: string
|
|
32
|
+
email_verified: string
|
|
33
|
+
profile: string
|
|
34
|
+
zoneinfo: string
|
|
35
|
+
locale: string
|
|
36
|
+
address: string
|
|
37
|
+
phone_number: string
|
|
38
|
+
picture: string
|
|
39
|
+
website: string
|
|
40
|
+
gender: string
|
|
41
|
+
birthdate: string
|
|
42
|
+
updated_at: string
|
|
43
|
+
at_hash: string
|
|
44
|
+
c_hash: string
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Add Okta login to your page.
|
|
49
|
+
*
|
|
50
|
+
* ### Setup
|
|
51
|
+
*
|
|
52
|
+
* #### Callback URL
|
|
53
|
+
* ```
|
|
54
|
+
* https://example.com/api/auth/callback/okta
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* #### Configuration
|
|
58
|
+
*```ts
|
|
59
|
+
* import { Auth } from "@auth/core"
|
|
60
|
+
* import Okta from "@auth/core/providers/okta"
|
|
61
|
+
*
|
|
62
|
+
* const request = new Request(origin)
|
|
63
|
+
* const response = await Auth(request, {
|
|
64
|
+
* providers: [
|
|
65
|
+
* Okta({
|
|
66
|
+
* clientId: OKTA_CLIENT_ID,
|
|
67
|
+
* clientSecret: OKTA_CLIENT_SECRET,
|
|
68
|
+
* issuer: OKTA_ISSUER,
|
|
69
|
+
* }),
|
|
70
|
+
* ],
|
|
71
|
+
* })
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* ### Resources
|
|
75
|
+
*
|
|
76
|
+
* - [Okta OAuth documentation](https://developer.okta.com/docs/reference/api/oidc)
|
|
77
|
+
*
|
|
78
|
+
* ### Notes
|
|
79
|
+
*
|
|
80
|
+
* By default, Auth.js assumes that the Okta provider is
|
|
81
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
82
|
+
*
|
|
83
|
+
* :::tip
|
|
84
|
+
*
|
|
85
|
+
* The Okta provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/okta.ts).
|
|
86
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
87
|
+
*
|
|
88
|
+
* :::
|
|
89
|
+
*
|
|
90
|
+
* :::info **Disclaimer**
|
|
91
|
+
*
|
|
92
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
93
|
+
*
|
|
94
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
95
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
96
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
97
|
+
*
|
|
98
|
+
* :::
|
|
99
|
+
*/
|
|
100
|
+
export default function Okta<P extends OktaProfile>(
|
|
101
|
+
options: OAuthUserConfig<P>
|
|
102
|
+
): OAuthConfig<P> {
|
|
103
|
+
return {
|
|
104
|
+
id: "okta",
|
|
105
|
+
name: "Okta",
|
|
106
|
+
type: "oidc",
|
|
107
|
+
style: { bg: "#000", text: "#fff" },
|
|
108
|
+
checks: ["pkce", "state"],
|
|
109
|
+
options,
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>OneLogin</b> integration.</span>
|
|
4
|
+
* <a href="https://onelogin.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/onelogin.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/onelogin
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Add OneLogin login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/onelogin
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import OneLogin from "@auth/core/providers/onelogin"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* OneLogin({
|
|
32
|
+
* clientId: ONELOGIN_CLIENT_ID,
|
|
33
|
+
* clientSecret: ONELOGIN_CLIENT_SECRET,
|
|
34
|
+
* }),
|
|
35
|
+
* ],
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### Resources
|
|
40
|
+
*
|
|
41
|
+
* - [OneLogin OAuth documentation](https://example.com)
|
|
42
|
+
*
|
|
43
|
+
* ### Notes
|
|
44
|
+
*
|
|
45
|
+
* By default, Auth.js assumes that the OneLogin provider is
|
|
46
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
47
|
+
*
|
|
48
|
+
* :::tip
|
|
49
|
+
*
|
|
50
|
+
* The OneLogin provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/onelogin.ts).
|
|
51
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
52
|
+
*
|
|
53
|
+
* :::
|
|
54
|
+
*
|
|
55
|
+
* :::info **Disclaimer**
|
|
56
|
+
*
|
|
57
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
58
|
+
*
|
|
59
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
60
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
61
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
62
|
+
*
|
|
63
|
+
* :::
|
|
64
|
+
*/
|
|
65
|
+
export default function OneLogin(
|
|
66
|
+
config: OAuthUserConfig<Record<string, any>>
|
|
67
|
+
): OAuthConfig<Record<string, any>> {
|
|
68
|
+
return {
|
|
69
|
+
id: "onelogin",
|
|
70
|
+
name: "OneLogin",
|
|
71
|
+
type: "oidc",
|
|
72
|
+
wellKnown: `${config.issuer}/oidc/2/.well-known/openid-configuration`,
|
|
73
|
+
options: config,
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Ory Hydra</b> integration.</span>
|
|
4
|
+
* <a href="https://www.ory.sh/hydra/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/ory.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/ory-hydra
|
|
10
|
+
*/
|
|
11
|
+
import type { OIDCConfig, OIDCUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface OryHydraProfile extends Record<string, any> {
|
|
14
|
+
iss: string
|
|
15
|
+
ver: string
|
|
16
|
+
sub: string
|
|
17
|
+
aud: string
|
|
18
|
+
iat: string
|
|
19
|
+
exp: string
|
|
20
|
+
jti: string
|
|
21
|
+
amr: string
|
|
22
|
+
email?: string
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Add Ory Hydra login to your page.
|
|
27
|
+
*
|
|
28
|
+
* ### Setup
|
|
29
|
+
*
|
|
30
|
+
* #### Callback URL
|
|
31
|
+
* ```
|
|
32
|
+
* https://example.com/api/auth/callback/hydra
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* #### Configuration
|
|
36
|
+
*```ts
|
|
37
|
+
* import { Auth } from "@auth/core"
|
|
38
|
+
* import OryHydra from "@auth/core/providers/ory-hydra"
|
|
39
|
+
*
|
|
40
|
+
* const request = new Request(origin)
|
|
41
|
+
* const response = await Auth(request, {
|
|
42
|
+
* providers: [
|
|
43
|
+
* OryHydra({
|
|
44
|
+
* clientId: ORY_HYDRA_CLIENT_ID,
|
|
45
|
+
* clientSecret: ORY_HYDRA_CLIENT_SECRET,
|
|
46
|
+
* issuer: ORY_HYDRA_ISSUER,
|
|
47
|
+
* }),
|
|
48
|
+
* ],
|
|
49
|
+
* })
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* ### Resources
|
|
53
|
+
*
|
|
54
|
+
* - [Ory Hydra documentation](https://www.ory.sh/docs/hydra/5min-tutorial)
|
|
55
|
+
*
|
|
56
|
+
* ### Notes
|
|
57
|
+
*
|
|
58
|
+
* Ory Hydra can be setup using the default Ory Network setup or self hosted on your own
|
|
59
|
+
* infrastructure.
|
|
60
|
+
* By default, Auth.js assumes that the Ory Hydra provider is
|
|
61
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
62
|
+
*
|
|
63
|
+
* :::tip
|
|
64
|
+
*
|
|
65
|
+
* The Ory Hydra provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/ory-hydra.ts).
|
|
66
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
67
|
+
*
|
|
68
|
+
* :::
|
|
69
|
+
*
|
|
70
|
+
* :::info **Disclaimer**
|
|
71
|
+
*
|
|
72
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
73
|
+
*
|
|
74
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
75
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
76
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
77
|
+
*
|
|
78
|
+
* :::
|
|
79
|
+
*/
|
|
80
|
+
export default function OryHydra<P extends OryHydraProfile>(
|
|
81
|
+
options: OIDCUserConfig<P>
|
|
82
|
+
): OIDCConfig<P> {
|
|
83
|
+
return {
|
|
84
|
+
id: "hydra",
|
|
85
|
+
name: "Hydra",
|
|
86
|
+
type: "oidc",
|
|
87
|
+
style: {
|
|
88
|
+
bg: "#fff",
|
|
89
|
+
text: "#0F172A",
|
|
90
|
+
},
|
|
91
|
+
options,
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Osso</b> integration.</span>
|
|
4
|
+
* <a href="https://ossoapp.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/osso.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/osso
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Add Osso login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/osso
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import Osso from "@auth/core/providers/osso"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* Osso({
|
|
32
|
+
* clientId: OSSO_CLIENT_ID,
|
|
33
|
+
* clientSecret: OSSO_CLIENT_SECRET,
|
|
34
|
+
* issuer: OSSO_ISSUER,
|
|
35
|
+
* }),
|
|
36
|
+
* ],
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* ### Resources
|
|
41
|
+
* Osso is an open source service that handles SAML authentication against Identity Providers, normalizes profiles, and makes those profiles available to you in an OAuth 2.0 code grant flow.
|
|
42
|
+
*
|
|
43
|
+
* - If you don't yet have an Osso instance, you can use [Osso's Demo App](https://demo.ossoapp.com) for your testing purposes. For documentation on deploying an Osso instance, see https://ossoapp.com/docs/deploy/overview/
|
|
44
|
+
* - [Osso OAuth documentation](https://ossoapp.com/)
|
|
45
|
+
*
|
|
46
|
+
* You can configure your OAuth Clients on your Osso Admin UI, i.e. https://demo.ossoapp.com/admin/config - you'll need to get a Client ID and Secret and allow-list your redirect URIs.
|
|
47
|
+
* [SAML SSO differs a bit from OAuth](https://ossoapp.com/blog/saml-vs-oauth) - for every tenant who wants to sign in to your application using SAML, you and your customer need to perform a multi-step configuration in Osso's Admin UI and the admin dashboard of the tenant's Identity Provider. Osso provides documentation for providers like Okta and OneLogin, cloud-based IDPs who also offer a developer account that's useful for testing. Osso also provides a [Mock IDP](https://idp.ossoapp.com) that you can use for testing without needing to sign up for an Identity Provider service.
|
|
48
|
+
|
|
49
|
+
* See Osso's complete configuration and testing documentation at https://ossoapp.com/docs/configure/overview
|
|
50
|
+
*
|
|
51
|
+
* ### Notes
|
|
52
|
+
*
|
|
53
|
+
* By default, Auth.js assumes that the Osso provider is
|
|
54
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
55
|
+
*
|
|
56
|
+
* :::note
|
|
57
|
+
*
|
|
58
|
+
* `issuer` should be the fully qualified domain e.g. `demo.ossoapp.com`
|
|
59
|
+
*
|
|
60
|
+
* :::
|
|
61
|
+
*
|
|
62
|
+
* :::tip
|
|
63
|
+
*
|
|
64
|
+
* The Osso provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/osso.ts).
|
|
65
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
66
|
+
*
|
|
67
|
+
* :::
|
|
68
|
+
*
|
|
69
|
+
* :::info **Disclaimer**
|
|
70
|
+
*
|
|
71
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
72
|
+
*
|
|
73
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
74
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
75
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
76
|
+
*
|
|
77
|
+
* :::
|
|
78
|
+
*/
|
|
79
|
+
export default function Osso(
|
|
80
|
+
config: OAuthUserConfig<Record<string, any>>
|
|
81
|
+
): OAuthConfig<Record<string, any>> {
|
|
82
|
+
return {
|
|
83
|
+
id: "osso",
|
|
84
|
+
name: "Osso",
|
|
85
|
+
type: "oauth",
|
|
86
|
+
authorization: `${config.issuer}oauth/authorize`,
|
|
87
|
+
token: `${config.issuer}oauth/token`,
|
|
88
|
+
userinfo: `${config.issuer}oauth/me`,
|
|
89
|
+
options: config,
|
|
90
|
+
}
|
|
91
|
+
}
|