@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,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>WorkOS</b> integration.</span>
|
|
4
|
+
* <a href="https://workos.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/workos.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/workos
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
/**
|
|
13
|
+
* - {@link https://workos.com/docs/reference/sso/profile | The returned profile object}
|
|
14
|
+
*/
|
|
15
|
+
export interface WorkOSProfile extends Record<string, any> {
|
|
16
|
+
object: string
|
|
17
|
+
id: string
|
|
18
|
+
organization_id: string
|
|
19
|
+
connection_id: string
|
|
20
|
+
connection_type: string
|
|
21
|
+
idp_id: string
|
|
22
|
+
email: string
|
|
23
|
+
first_name: string
|
|
24
|
+
last_name: string
|
|
25
|
+
raw_attributes: {
|
|
26
|
+
id: string
|
|
27
|
+
email: string
|
|
28
|
+
lastName: string
|
|
29
|
+
firstName: string
|
|
30
|
+
picture: string
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Add WorkOS login to your page.
|
|
36
|
+
*
|
|
37
|
+
* ### Setup
|
|
38
|
+
*
|
|
39
|
+
* #### Callback URL
|
|
40
|
+
* ```
|
|
41
|
+
* https://example.com/api/auth/callback/workos
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* #### Configuration
|
|
45
|
+
*```ts
|
|
46
|
+
* import { Auth } from "@auth/core"
|
|
47
|
+
* import WorkOS from "@auth/core/providers/workos"
|
|
48
|
+
*
|
|
49
|
+
* const request = new Request(origin)
|
|
50
|
+
* const response = await Auth(request, {
|
|
51
|
+
* providers: [
|
|
52
|
+
* WorkOS({
|
|
53
|
+
* clientId: WORKOS_CLIENT_ID,
|
|
54
|
+
* clientSecret: WORKOS_CLIENT_SECRET,
|
|
55
|
+
* issuer: WORKOS_ISSUER,
|
|
56
|
+
* }),
|
|
57
|
+
* ],
|
|
58
|
+
* })
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* ### Resources
|
|
62
|
+
*
|
|
63
|
+
* - [WorkOS SSO OAuth documentation](https://workos.com/docs/reference/sso)
|
|
64
|
+
*
|
|
65
|
+
* ### Notes
|
|
66
|
+
*
|
|
67
|
+
* By default, Auth.js assumes that the WorkOS provider is
|
|
68
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
69
|
+
*
|
|
70
|
+
* WorkOS is not an identity provider itself, but, rather, a bridge to multiple single sign-on (SSO) providers.
|
|
71
|
+
* As a result, we need to make some additional changes to authenticate users using WorkOS.
|
|
72
|
+
*
|
|
73
|
+
* In order to sign a user in using WorkOS, we need to specify which WorkOS Connection to use.
|
|
74
|
+
* A common way to do this is to collect the user's email address and extract the domain. This can be done using a custom login page.
|
|
75
|
+
* To add a custom login page, you can use the `pages` option:
|
|
76
|
+
* ```ts
|
|
77
|
+
* pages: {
|
|
78
|
+
* signIn: "/auth/signin",
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
* We can then add a custom login page that displays an input where the user can enter their email address.
|
|
82
|
+
* We then extract the domain from the user's email address and pass it to the `authorizationParams` parameter on the `signIn` function:
|
|
83
|
+
* ```js title="pages/auth/signin.js"
|
|
84
|
+
* import { useState } from "react"
|
|
85
|
+
* import { getProviders, signIn } from "next-auth/react"
|
|
86
|
+
*
|
|
87
|
+
* export default function SignIn({ providers }) {
|
|
88
|
+
* const [email, setEmail] = useState("")
|
|
89
|
+
*
|
|
90
|
+
* return (
|
|
91
|
+
* <>
|
|
92
|
+
* {Object.values(providers).map((provider) => {
|
|
93
|
+
* if (provider.id === "workos") {
|
|
94
|
+
* return (
|
|
95
|
+
* <div key={provider.id}>
|
|
96
|
+
* <input
|
|
97
|
+
* type="email"
|
|
98
|
+
* value={email}
|
|
99
|
+
* placeholder="Email"
|
|
100
|
+
* onChange={(event) => setEmail(event.target.value)}
|
|
101
|
+
* />
|
|
102
|
+
* <button
|
|
103
|
+
* onClick={() =>
|
|
104
|
+
* signIn(provider.id, undefined, {
|
|
105
|
+
* domain: email.split("@")[1],
|
|
106
|
+
* })
|
|
107
|
+
* }
|
|
108
|
+
* >
|
|
109
|
+
* Sign in with SSO
|
|
110
|
+
* </button>
|
|
111
|
+
* </div>
|
|
112
|
+
* )
|
|
113
|
+
* }
|
|
114
|
+
*
|
|
115
|
+
* return (
|
|
116
|
+
* <div key={provider.id}>
|
|
117
|
+
* <button onClick={() => signIn(provider.id)}>
|
|
118
|
+
* Sign in with {provider.name}
|
|
119
|
+
* </button>
|
|
120
|
+
* </div>
|
|
121
|
+
* )
|
|
122
|
+
* })}
|
|
123
|
+
* </>
|
|
124
|
+
* )
|
|
125
|
+
* }
|
|
126
|
+
*
|
|
127
|
+
* export async function getServerSideProps(context) {
|
|
128
|
+
* const providers = await getProviders()
|
|
129
|
+
* return {
|
|
130
|
+
* props: { providers },
|
|
131
|
+
* }
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
134
|
+
*
|
|
135
|
+
* :::tip
|
|
136
|
+
*
|
|
137
|
+
* The WorkOS provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/workos.ts).
|
|
138
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
139
|
+
*
|
|
140
|
+
* :::
|
|
141
|
+
*
|
|
142
|
+
* :::info **Disclaimer**
|
|
143
|
+
*
|
|
144
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
145
|
+
*
|
|
146
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
147
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
148
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
149
|
+
*
|
|
150
|
+
* :::
|
|
151
|
+
*/
|
|
152
|
+
export default function WorkOS<P extends WorkOSProfile>(
|
|
153
|
+
options: OAuthUserConfig<P> & { connection?: string }
|
|
154
|
+
): OAuthConfig<P> {
|
|
155
|
+
const { issuer = "https://api.workos.com/", connection = "" } = options
|
|
156
|
+
|
|
157
|
+
const connectionParams = new URLSearchParams({ connection })
|
|
158
|
+
|
|
159
|
+
return {
|
|
160
|
+
id: "workos",
|
|
161
|
+
name: "WorkOS",
|
|
162
|
+
type: "oauth",
|
|
163
|
+
authorization: `${issuer}sso/authorize?${connectionParams}`,
|
|
164
|
+
token: `${issuer}sso/token`,
|
|
165
|
+
client: {
|
|
166
|
+
token_endpoint_auth_method: "client_secret_post",
|
|
167
|
+
},
|
|
168
|
+
userinfo: `${issuer}sso/profile`,
|
|
169
|
+
profile(profile) {
|
|
170
|
+
return {
|
|
171
|
+
id: profile.id,
|
|
172
|
+
name: `${profile.first_name} ${profile.last_name}`,
|
|
173
|
+
email: profile.email,
|
|
174
|
+
image: profile.raw_attributes.picture ?? null,
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
style: { bg: "#6363f1", text: "#fff" },
|
|
178
|
+
options,
|
|
179
|
+
}
|
|
180
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#ffcc00", display: "flex", justifyContent: "space-between", color: "#000", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Yandex</b> integration.</span>
|
|
4
|
+
* <a href="https://yandex.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/yandex.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/yandex
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { OAuthConfig, OAuthUserConfig } from "./oauth.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information | Getting information about the user}
|
|
16
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#email-access | Access to email address}
|
|
17
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#avatar-access | Access to the user's profile picture}
|
|
18
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#birthday-access | Access to the date of birth}
|
|
19
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#name-access | Access to login, first name, last name, and gender}
|
|
20
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#phone-access | Access to the phone number}
|
|
21
|
+
*/
|
|
22
|
+
export interface YandexProfile {
|
|
23
|
+
/** User's Yandex login. */
|
|
24
|
+
login: string
|
|
25
|
+
/** Yandex user's unique ID. */
|
|
26
|
+
id: string
|
|
27
|
+
/**
|
|
28
|
+
* The ID of the app the OAuth token in the request was issued for.
|
|
29
|
+
* Available in the [app properties](https://oauth.yandex.com/). To open properties, click the app name.
|
|
30
|
+
*/
|
|
31
|
+
client_id: string
|
|
32
|
+
/** Authorized Yandex user ID. It is formed on the Yandex side based on the `client_id` and `user_id` pair. */
|
|
33
|
+
psuid: string
|
|
34
|
+
/** An array of the user's email addresses. Currently only includes the default email address. */
|
|
35
|
+
emails?: string[]
|
|
36
|
+
/** The default email address for contacting the user. */
|
|
37
|
+
default_email?: string
|
|
38
|
+
/**
|
|
39
|
+
* Indicates that the stub (profile picture that is automatically assigned when registering in Yandex)
|
|
40
|
+
* ID is specified in the `default_avatar_id` field.
|
|
41
|
+
*/
|
|
42
|
+
is_avatar_empty?: boolean
|
|
43
|
+
/**
|
|
44
|
+
* ID of the Yandex user's profile picture.
|
|
45
|
+
* Format for downloading user avatars: `https://avatars.yandex.net/get-yapic/<default_avatar_id>/<size>`
|
|
46
|
+
* @example "https://avatars.yandex.net/get-yapic/31804/BYkogAC6AoB17bN1HKRFAyKiM4-1/islands-200"
|
|
47
|
+
* Available sizes:
|
|
48
|
+
* `islands-small`: 28×28 pixels.
|
|
49
|
+
* `islands-34`: 34×34 pixels.
|
|
50
|
+
* `islands-middle`: 42×42 pixels.
|
|
51
|
+
* `islands-50`: 50×50 pixels.
|
|
52
|
+
* `islands-retina-small`: 56×56 pixels.
|
|
53
|
+
* `islands-68`: 68×68 pixels.
|
|
54
|
+
* `islands-75`: 75×75 pixels.
|
|
55
|
+
* `islands-retina-middle`: 84×84 pixels.
|
|
56
|
+
* `islands-retina-50`: 100×100 pixels.
|
|
57
|
+
* `islands-200`: 200×200 pixels.
|
|
58
|
+
*/
|
|
59
|
+
default_avatar_id?: string
|
|
60
|
+
/**
|
|
61
|
+
* The user's date of birth in YYYY-MM-DD format.
|
|
62
|
+
* Unknown elements of the date are filled in with zeros, such as: `0000-12-23`.
|
|
63
|
+
* If the user's date of birth is unknow, birthday will be `null`
|
|
64
|
+
*/
|
|
65
|
+
birthday?: string | null
|
|
66
|
+
first_name?: string
|
|
67
|
+
last_name?: string
|
|
68
|
+
display_name?: string
|
|
69
|
+
/**
|
|
70
|
+
* The first and last name that the user specified in Yandex ID.
|
|
71
|
+
* Non-Latin characters of the first and last names are presented in Unicode format.
|
|
72
|
+
*/
|
|
73
|
+
real_name?: string
|
|
74
|
+
/** User's gender. `null` Stands for unknown or unspecified gender. Will be `undefined` if not provided by Yandex. */
|
|
75
|
+
sex?: "male" | "female" | null
|
|
76
|
+
/**
|
|
77
|
+
* The default phone number for contacting the user.
|
|
78
|
+
* The API can exclude the user's phone number from the response at its discretion.
|
|
79
|
+
* The field contains the following parameters:
|
|
80
|
+
* id: Phone number ID.
|
|
81
|
+
* number: The user's phone number.
|
|
82
|
+
*/
|
|
83
|
+
default_phone?: { id: number; number: string }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Add Yandex login to your page.
|
|
88
|
+
*
|
|
89
|
+
* ### Setup
|
|
90
|
+
*
|
|
91
|
+
* #### Callback URL
|
|
92
|
+
* ```
|
|
93
|
+
* https://example.com/api/auth/callback/yandex
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* #### Configuration
|
|
97
|
+
* ```ts
|
|
98
|
+
* import { Auth } from "@auth/core"
|
|
99
|
+
* import Yandex from "@auth/core/providers/yandex"
|
|
100
|
+
*
|
|
101
|
+
* const request = new Request(origin)
|
|
102
|
+
* const response = await Auth(request, {
|
|
103
|
+
* providers: [
|
|
104
|
+
* Yandex({ clientId: YANDEX_CLIENT_ID, clientSecret: YANDEX_CLIENT_SECRET }),
|
|
105
|
+
* ],
|
|
106
|
+
* })
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* ### Resources
|
|
110
|
+
*
|
|
111
|
+
* - [Yandex - Creating an OAuth app](https://yandex.com/dev/id/doc/en/register-client#create)
|
|
112
|
+
* - [Yandex - Manage OAuth apps](https://oauth.yandex.com/)
|
|
113
|
+
* - [Yandex - OAuth documentation](https://yandex.com/dev/id/doc/en/)
|
|
114
|
+
* - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
|
|
115
|
+
* - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts)
|
|
116
|
+
*
|
|
117
|
+
*:::tip
|
|
118
|
+
* The Yandex provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts).
|
|
119
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
120
|
+
* :::
|
|
121
|
+
*
|
|
122
|
+
* :::info **Disclaimer**
|
|
123
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
124
|
+
*
|
|
125
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
126
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
127
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
128
|
+
* :::
|
|
129
|
+
*/
|
|
130
|
+
export default function Yandex(
|
|
131
|
+
options: OAuthUserConfig<YandexProfile>
|
|
132
|
+
): OAuthConfig<YandexProfile> {
|
|
133
|
+
return {
|
|
134
|
+
id: "yandex",
|
|
135
|
+
name: "Yandex",
|
|
136
|
+
type: "oauth",
|
|
137
|
+
/** @see [Data access](https://yandex.com/dev/id/doc/en/register-client#access) */
|
|
138
|
+
authorization:
|
|
139
|
+
"https://oauth.yandex.ru/authorize?scope=login:info+login:email+login:avatar",
|
|
140
|
+
token: "https://oauth.yandex.ru/token",
|
|
141
|
+
userinfo: "https://login.yandex.ru/info?format=json",
|
|
142
|
+
profile(profile) {
|
|
143
|
+
return {
|
|
144
|
+
id: profile.id,
|
|
145
|
+
name: profile.display_name ?? profile.real_name ?? profile.first_name,
|
|
146
|
+
email: profile.default_email ?? profile.emails?.[0] ?? null,
|
|
147
|
+
image:
|
|
148
|
+
!profile.is_avatar_empty && profile.default_avatar_id
|
|
149
|
+
? `https://avatars.yandex.net/get-yapic/${profile.default_avatar_id}/islands-200`
|
|
150
|
+
: null,
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
style: {
|
|
154
|
+
bg: "#ffcc00",
|
|
155
|
+
text: "#000",
|
|
156
|
+
},
|
|
157
|
+
options,
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Zitadel</b> integration.</span>
|
|
4
|
+
* <a href="https://zitadel.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/zitadel.svg" height="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/zitadel
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type { OIDCConfig, OAuthUserConfig } from "./index.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The returned user profile from ZITADEL when using the profile callback. See the standard claims reference [here](https://zitadel.com/docs/apis/openidoauth/claims#standard-claims).
|
|
16
|
+
* If you need access to ZITADEL APIs or need additional information, make sure to add the corresponding scopes.
|
|
17
|
+
*/
|
|
18
|
+
export interface ZitadelProfile extends Record<string, any> {
|
|
19
|
+
amr: string // Authentication Method References as defined in RFC8176
|
|
20
|
+
aud: string // The audience of the token, by default all client id's and the project id are included
|
|
21
|
+
auth_time: number // UNIX time of the authentication
|
|
22
|
+
azp: string // Client id of the client who requested the token
|
|
23
|
+
email: string // Email Address of the subject
|
|
24
|
+
email_verified: boolean // if the email was verified by ZITADEL
|
|
25
|
+
exp: number // Time the token expires (as unix time)
|
|
26
|
+
family_name: string // The subjects family name
|
|
27
|
+
given_name: string // Given name of the subject
|
|
28
|
+
gender: string // Gender of the subject
|
|
29
|
+
iat: number // Time of the token was issued at (as unix time)
|
|
30
|
+
iss: string // Issuing domain of a token
|
|
31
|
+
jti: string // Unique id of the token
|
|
32
|
+
locale: string // Language from the subject
|
|
33
|
+
name: string // The subjects full name
|
|
34
|
+
nbf: number // Time the token must not be used before (as unix time)
|
|
35
|
+
picture: string // The subjects profile picture
|
|
36
|
+
phone: string // Phone number provided by the user
|
|
37
|
+
phone_verified: boolean // if the phonenumber was verified by ZITADEL
|
|
38
|
+
preferred_username: string // ZITADEL's login name of the user. Consist of username@primarydomain
|
|
39
|
+
sub: string // Subject ID of the user
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Add ZITADEL login to your page.
|
|
44
|
+
*
|
|
45
|
+
* ### Setup
|
|
46
|
+
*
|
|
47
|
+
* #### Callback URL
|
|
48
|
+
* ```
|
|
49
|
+
* https://example.com/api/auth/callback/zitadel
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* #### Configuration
|
|
53
|
+
*```ts
|
|
54
|
+
* import { Auth } from "@auth/core"
|
|
55
|
+
* import ZITADEL from "@auth/core/providers/zitadel"
|
|
56
|
+
*
|
|
57
|
+
* const request = new Request(origin)
|
|
58
|
+
* const response = await Auth(request, {
|
|
59
|
+
* providers: [
|
|
60
|
+
* ZITADEL({
|
|
61
|
+
* clientId: ZITADEL_CLIENT_ID,
|
|
62
|
+
* clientSecret: ZITADEL_CLIENT_SECRET,
|
|
63
|
+
* }),
|
|
64
|
+
* ],
|
|
65
|
+
* })
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* ### Resources
|
|
69
|
+
* - [ZITADEL OpenID Endpoints](https://zitadel.com/docs/apis/openidoauth/endpoints)
|
|
70
|
+
* - [ZITADEL recommended OAuth Flows](https://zitadel.com/docs/guides/integrate/oauth-recommended-flows)
|
|
71
|
+
*
|
|
72
|
+
* ### Notes
|
|
73
|
+
*
|
|
74
|
+
* By default, Auth.js assumes that the ZITADEL provider is
|
|
75
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
76
|
+
*
|
|
77
|
+
* The Redirect URIs used when creating the credentials must include your full domain and end in the callback path. For example:
|
|
78
|
+
* - For production: `https://{YOUR_DOMAIN}/api/auth/callback/zitadel`
|
|
79
|
+
* - For development: `http://localhost:3000/api/auth/callback/zitadel`
|
|
80
|
+
*
|
|
81
|
+
* Make sure to enable dev mode in ZITADEL console to allow redirects for local development.
|
|
82
|
+
*
|
|
83
|
+
* :::tip
|
|
84
|
+
*
|
|
85
|
+
* The ZITADEL provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/zitadel.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
|
+
* :::tip
|
|
90
|
+
*
|
|
91
|
+
* ZITADEL also returns a email_verified boolean property in the profile. You can use this property to restrict access to people with verified accounts.
|
|
92
|
+
* ```ts
|
|
93
|
+
* const options = {
|
|
94
|
+
* ...
|
|
95
|
+
* callbacks: {
|
|
96
|
+
* async signIn({ account, profile }) {
|
|
97
|
+
* if (account.provider === "zitadel") {
|
|
98
|
+
* return profile.email_verified;
|
|
99
|
+
* }
|
|
100
|
+
* return true; // Do different verification for other providers that don't have `email_verified`
|
|
101
|
+
* },
|
|
102
|
+
* }
|
|
103
|
+
* ...
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* :::
|
|
108
|
+
*
|
|
109
|
+
* :::info **Disclaimer**
|
|
110
|
+
*
|
|
111
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
112
|
+
*
|
|
113
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
114
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
115
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
116
|
+
*
|
|
117
|
+
* :::
|
|
118
|
+
*/
|
|
119
|
+
export default function ZITADEL<P extends ZitadelProfile>(
|
|
120
|
+
options: OAuthUserConfig<P>
|
|
121
|
+
): OIDCConfig<P> {
|
|
122
|
+
return {
|
|
123
|
+
id: "zitadel",
|
|
124
|
+
name: "ZITADEL",
|
|
125
|
+
type: "oidc",
|
|
126
|
+
options,
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>ZOHO</b> integration.</span>
|
|
4
|
+
* <a href="https://zoho.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/zoho.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/zoho
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
13
|
+
/**
|
|
14
|
+
* Add ZOHO login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/zoho
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import ZOHO from "@auth/core/providers/zoho"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* ZOHO({ clientId: ZOHO_CLIENT_ID, clientSecret: ZOHO_CLIENT_SECRET }),
|
|
32
|
+
* ],
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* ### Resources
|
|
37
|
+
*
|
|
38
|
+
* - [Zoho OAuth 2.0 Integration Guide](https://www.zoho.com/accounts/protocol/oauth/web-server-applications.html)
|
|
39
|
+
* - [Zoho API Console](https://api-console.zoho.com)
|
|
40
|
+
*
|
|
41
|
+
* ### Notes
|
|
42
|
+
*
|
|
43
|
+
* By default, Auth.js assumes that the ZOHO provider is
|
|
44
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
45
|
+
*
|
|
46
|
+
* :::tip
|
|
47
|
+
*
|
|
48
|
+
* The ZOHO provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/zoho.ts).
|
|
49
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
50
|
+
*
|
|
51
|
+
* :::
|
|
52
|
+
*
|
|
53
|
+
* :::info **Disclaimer**
|
|
54
|
+
*
|
|
55
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
56
|
+
*
|
|
57
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
58
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
59
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
60
|
+
*
|
|
61
|
+
* :::
|
|
62
|
+
*/
|
|
63
|
+
export default function Zoho(
|
|
64
|
+
config: OAuthUserConfig<Record<string, any>>
|
|
65
|
+
): OAuthConfig<Record<string, any>> {
|
|
66
|
+
return {
|
|
67
|
+
id: "zoho",
|
|
68
|
+
name: "Zoho",
|
|
69
|
+
type: "oauth",
|
|
70
|
+
authorization:
|
|
71
|
+
"https://accounts.zoho.com/oauth/v2/auth?scope=AaaServer.profile.Read",
|
|
72
|
+
token: "https://accounts.zoho.com/oauth/v2/token",
|
|
73
|
+
userinfo: "https://accounts.zoho.com/oauth/user/info",
|
|
74
|
+
profile(profile) {
|
|
75
|
+
return {
|
|
76
|
+
id: profile.ZUID,
|
|
77
|
+
name: `${profile.First_Name} ${profile.Last_Name}`,
|
|
78
|
+
email: profile.Email,
|
|
79
|
+
image: null,
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
options: config,
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Zoom</b> integration.</span>
|
|
4
|
+
* <a href="https://zoom.us/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/zoom.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/zoom
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* See: https://developers.zoom.us/docs/integrations/oauth/#using-an-access-token
|
|
16
|
+
*/
|
|
17
|
+
export interface ZoomProfile extends Record<string, any> {
|
|
18
|
+
id: string
|
|
19
|
+
first_name: string
|
|
20
|
+
last_name: string
|
|
21
|
+
email: string
|
|
22
|
+
type: number
|
|
23
|
+
role_name: string
|
|
24
|
+
pmi: number
|
|
25
|
+
use_pmi: boolean
|
|
26
|
+
vanity_url: string
|
|
27
|
+
personal_meeting_url: string
|
|
28
|
+
timezone: string
|
|
29
|
+
verified: number
|
|
30
|
+
dept: string
|
|
31
|
+
created_at: string
|
|
32
|
+
last_login_time: string
|
|
33
|
+
last_client_version: string
|
|
34
|
+
pic_url: string
|
|
35
|
+
host_key: string
|
|
36
|
+
jid: string
|
|
37
|
+
group_ids: string[]
|
|
38
|
+
im_group_ids: string[]
|
|
39
|
+
account_id: string
|
|
40
|
+
language: string
|
|
41
|
+
phone_country: string
|
|
42
|
+
phone_number: string
|
|
43
|
+
status: string
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Add Zoom login to your page.
|
|
48
|
+
*
|
|
49
|
+
* ### Setup
|
|
50
|
+
*
|
|
51
|
+
* #### Callback URL
|
|
52
|
+
* ```
|
|
53
|
+
* https://example.com/api/auth/callback/zoom
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* #### Configuration
|
|
57
|
+
*```ts
|
|
58
|
+
* import { Auth } from "@auth/core"
|
|
59
|
+
* import Zoom from "@auth/core/providers/zoom"
|
|
60
|
+
*
|
|
61
|
+
* const request = new Request(origin)
|
|
62
|
+
* const response = await Auth(request, {
|
|
63
|
+
* providers: [
|
|
64
|
+
* Zoom({ clientId: ZOOM_CLIENT_ID, clientSecret: ZOOM_CLIENT_SECRET }),
|
|
65
|
+
* ],
|
|
66
|
+
* })
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* ### Resources
|
|
70
|
+
*
|
|
71
|
+
* - [Zoom OAuth 2.0 Integration Guide](https://developers.zoom.us/docs/integrations/oauth/)
|
|
72
|
+
*
|
|
73
|
+
* ### Notes
|
|
74
|
+
*
|
|
75
|
+
* By default, Auth.js assumes that the Zoom provider is
|
|
76
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
77
|
+
*
|
|
78
|
+
* :::tip
|
|
79
|
+
*
|
|
80
|
+
* The Zoom provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/zoom.ts).
|
|
81
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
82
|
+
*
|
|
83
|
+
* :::
|
|
84
|
+
*
|
|
85
|
+
* :::info **Disclaimer**
|
|
86
|
+
*
|
|
87
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
88
|
+
*
|
|
89
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
90
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
91
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
92
|
+
*
|
|
93
|
+
* :::
|
|
94
|
+
*/
|
|
95
|
+
export default function Zoom(
|
|
96
|
+
config: OAuthUserConfig<ZoomProfile>
|
|
97
|
+
): OAuthConfig<ZoomProfile> {
|
|
98
|
+
return {
|
|
99
|
+
id: "zoom",
|
|
100
|
+
name: "Zoom",
|
|
101
|
+
type: "oauth",
|
|
102
|
+
authorization: "https://zoom.us/oauth/authorize?scope",
|
|
103
|
+
token: "https://zoom.us/oauth/token",
|
|
104
|
+
userinfo: "https://api.zoom.us/v2/users/me",
|
|
105
|
+
profile(profile) {
|
|
106
|
+
return {
|
|
107
|
+
id: profile.id,
|
|
108
|
+
name: `${profile.first_name} ${profile.last_name}`,
|
|
109
|
+
email: profile.email,
|
|
110
|
+
image: profile.pic_url,
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
style: {
|
|
114
|
+
bg: "#0b5cff",
|
|
115
|
+
text: "#fff",
|
|
116
|
+
},
|
|
117
|
+
options: config,
|
|
118
|
+
}
|
|
119
|
+
}
|