@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,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>WordPress</b> integration.</span>
|
|
4
|
+
* <a href="https://wordpress.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/wordpress.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/wordpress
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js";
|
|
12
|
+
/**
|
|
13
|
+
* Add WordPress login to your page.
|
|
14
|
+
*
|
|
15
|
+
* ### Setup
|
|
16
|
+
*
|
|
17
|
+
* #### Callback URL
|
|
18
|
+
* ```
|
|
19
|
+
* https://example.com/api/auth/callback/wordpress
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* #### Configuration
|
|
23
|
+
*```ts
|
|
24
|
+
* import { Auth } from "@auth/core"
|
|
25
|
+
* import WordPress from "@auth/core/providers/wordpress"
|
|
26
|
+
*
|
|
27
|
+
* const request = new Request(origin)
|
|
28
|
+
* const response = await Auth(request, {
|
|
29
|
+
* providers: [
|
|
30
|
+
* WordPress({
|
|
31
|
+
* clientId: WORKPRESS_CLIENT_ID,
|
|
32
|
+
* clientSecret: WORKPRESS_CLIENT_SECRET,
|
|
33
|
+
* }),
|
|
34
|
+
* ],
|
|
35
|
+
* })
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* ### Resources
|
|
39
|
+
*
|
|
40
|
+
* - [WordPress OAuth documentation](https://developer.wordpress.com/docs/oauth2/)
|
|
41
|
+
*
|
|
42
|
+
* ### Notes
|
|
43
|
+
*
|
|
44
|
+
* By default, Auth.js assumes that the WordPress provider is
|
|
45
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
46
|
+
*
|
|
47
|
+
* :::tip
|
|
48
|
+
*
|
|
49
|
+
* The WordPress provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wordpress.ts).
|
|
50
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
51
|
+
*
|
|
52
|
+
* :::
|
|
53
|
+
*
|
|
54
|
+
* :::info **Disclaimer**
|
|
55
|
+
*
|
|
56
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
57
|
+
*
|
|
58
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
59
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
60
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
61
|
+
*
|
|
62
|
+
* :::
|
|
63
|
+
*/
|
|
64
|
+
export default function WordPress(config: OAuthUserConfig<Record<string, any>>): OAuthConfig<Record<string, any>>;
|
|
65
|
+
//# sourceMappingURL=wordpress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordpress.d.ts","sourceRoot":"","sources":["../src/providers/wordpress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAC3C,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAmBlC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add WordPress login to your page.
|
|
3
|
+
*
|
|
4
|
+
* ### Setup
|
|
5
|
+
*
|
|
6
|
+
* #### Callback URL
|
|
7
|
+
* ```
|
|
8
|
+
* https://example.com/api/auth/callback/wordpress
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* #### Configuration
|
|
12
|
+
*```ts
|
|
13
|
+
* import { Auth } from "@auth/core"
|
|
14
|
+
* import WordPress from "@auth/core/providers/wordpress"
|
|
15
|
+
*
|
|
16
|
+
* const request = new Request(origin)
|
|
17
|
+
* const response = await Auth(request, {
|
|
18
|
+
* providers: [
|
|
19
|
+
* WordPress({
|
|
20
|
+
* clientId: WORKPRESS_CLIENT_ID,
|
|
21
|
+
* clientSecret: WORKPRESS_CLIENT_SECRET,
|
|
22
|
+
* }),
|
|
23
|
+
* ],
|
|
24
|
+
* })
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* ### Resources
|
|
28
|
+
*
|
|
29
|
+
* - [WordPress OAuth documentation](https://developer.wordpress.com/docs/oauth2/)
|
|
30
|
+
*
|
|
31
|
+
* ### Notes
|
|
32
|
+
*
|
|
33
|
+
* By default, Auth.js assumes that the WordPress provider is
|
|
34
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
35
|
+
*
|
|
36
|
+
* :::tip
|
|
37
|
+
*
|
|
38
|
+
* The WordPress provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wordpress.ts).
|
|
39
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
40
|
+
*
|
|
41
|
+
* :::
|
|
42
|
+
*
|
|
43
|
+
* :::info **Disclaimer**
|
|
44
|
+
*
|
|
45
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
46
|
+
*
|
|
47
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
48
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
49
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
50
|
+
*
|
|
51
|
+
* :::
|
|
52
|
+
*/
|
|
53
|
+
export default function WordPress(config) {
|
|
54
|
+
return {
|
|
55
|
+
id: "wordpress",
|
|
56
|
+
name: "WordPress.com",
|
|
57
|
+
type: "oauth",
|
|
58
|
+
authorization: "https://public-api.wordpress.com/oauth2/authorize?scope=auth",
|
|
59
|
+
token: "https://public-api.wordpress.com/oauth2/token",
|
|
60
|
+
userinfo: "https://public-api.wordpress.com/rest/v1/me",
|
|
61
|
+
profile(profile) {
|
|
62
|
+
return {
|
|
63
|
+
id: profile.ID,
|
|
64
|
+
name: profile.display_name,
|
|
65
|
+
email: profile.email,
|
|
66
|
+
image: profile.avatar_URL,
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
options: config,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
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
|
+
* Add WorkOS login to your page.
|
|
35
|
+
*
|
|
36
|
+
* ### Setup
|
|
37
|
+
*
|
|
38
|
+
* #### Callback URL
|
|
39
|
+
* ```
|
|
40
|
+
* https://example.com/api/auth/callback/workos
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* #### Configuration
|
|
44
|
+
*```ts
|
|
45
|
+
* import { Auth } from "@auth/core"
|
|
46
|
+
* import WorkOS from "@auth/core/providers/workos"
|
|
47
|
+
*
|
|
48
|
+
* const request = new Request(origin)
|
|
49
|
+
* const response = await Auth(request, {
|
|
50
|
+
* providers: [
|
|
51
|
+
* WorkOS({
|
|
52
|
+
* clientId: WORKOS_CLIENT_ID,
|
|
53
|
+
* clientSecret: WORKOS_CLIENT_SECRET,
|
|
54
|
+
* issuer: WORKOS_ISSUER,
|
|
55
|
+
* }),
|
|
56
|
+
* ],
|
|
57
|
+
* })
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* ### Resources
|
|
61
|
+
*
|
|
62
|
+
* - [WorkOS SSO OAuth documentation](https://workos.com/docs/reference/sso)
|
|
63
|
+
*
|
|
64
|
+
* ### Notes
|
|
65
|
+
*
|
|
66
|
+
* By default, Auth.js assumes that the WorkOS provider is
|
|
67
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
68
|
+
*
|
|
69
|
+
* WorkOS is not an identity provider itself, but, rather, a bridge to multiple single sign-on (SSO) providers.
|
|
70
|
+
* As a result, we need to make some additional changes to authenticate users using WorkOS.
|
|
71
|
+
*
|
|
72
|
+
* In order to sign a user in using WorkOS, we need to specify which WorkOS Connection to use.
|
|
73
|
+
* 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.
|
|
74
|
+
* To add a custom login page, you can use the `pages` option:
|
|
75
|
+
* ```ts
|
|
76
|
+
* pages: {
|
|
77
|
+
* signIn: "/auth/signin",
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
* We can then add a custom login page that displays an input where the user can enter their email address.
|
|
81
|
+
* We then extract the domain from the user's email address and pass it to the `authorizationParams` parameter on the `signIn` function:
|
|
82
|
+
* ```js title="pages/auth/signin.js"
|
|
83
|
+
* import { useState } from "react"
|
|
84
|
+
* import { getProviders, signIn } from "next-auth/react"
|
|
85
|
+
*
|
|
86
|
+
* export default function SignIn({ providers }) {
|
|
87
|
+
* const [email, setEmail] = useState("")
|
|
88
|
+
*
|
|
89
|
+
* return (
|
|
90
|
+
* <>
|
|
91
|
+
* {Object.values(providers).map((provider) => {
|
|
92
|
+
* if (provider.id === "workos") {
|
|
93
|
+
* return (
|
|
94
|
+
* <div key={provider.id}>
|
|
95
|
+
* <input
|
|
96
|
+
* type="email"
|
|
97
|
+
* value={email}
|
|
98
|
+
* placeholder="Email"
|
|
99
|
+
* onChange={(event) => setEmail(event.target.value)}
|
|
100
|
+
* />
|
|
101
|
+
* <button
|
|
102
|
+
* onClick={() =>
|
|
103
|
+
* signIn(provider.id, undefined, {
|
|
104
|
+
* domain: email.split("@")[1],
|
|
105
|
+
* })
|
|
106
|
+
* }
|
|
107
|
+
* >
|
|
108
|
+
* Sign in with SSO
|
|
109
|
+
* </button>
|
|
110
|
+
* </div>
|
|
111
|
+
* )
|
|
112
|
+
* }
|
|
113
|
+
*
|
|
114
|
+
* return (
|
|
115
|
+
* <div key={provider.id}>
|
|
116
|
+
* <button onClick={() => signIn(provider.id)}>
|
|
117
|
+
* Sign in with {provider.name}
|
|
118
|
+
* </button>
|
|
119
|
+
* </div>
|
|
120
|
+
* )
|
|
121
|
+
* })}
|
|
122
|
+
* </>
|
|
123
|
+
* )
|
|
124
|
+
* }
|
|
125
|
+
*
|
|
126
|
+
* export async function getServerSideProps(context) {
|
|
127
|
+
* const providers = await getProviders()
|
|
128
|
+
* return {
|
|
129
|
+
* props: { providers },
|
|
130
|
+
* }
|
|
131
|
+
* }
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* :::tip
|
|
135
|
+
*
|
|
136
|
+
* The WorkOS provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/workos.ts).
|
|
137
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
138
|
+
*
|
|
139
|
+
* :::
|
|
140
|
+
*
|
|
141
|
+
* :::info **Disclaimer**
|
|
142
|
+
*
|
|
143
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
144
|
+
*
|
|
145
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
146
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
147
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
148
|
+
*
|
|
149
|
+
* :::
|
|
150
|
+
*/
|
|
151
|
+
export default function WorkOS<P extends WorkOSProfile>(options: OAuthUserConfig<P> & {
|
|
152
|
+
connection?: string;
|
|
153
|
+
}): OAuthConfig<P>;
|
|
154
|
+
//# sourceMappingURL=workos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workos.d.ts","sourceRoot":"","sources":["../src/providers/workos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9D;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACxD,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE;QACd,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqHG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,SAAS,aAAa,EACpD,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,WAAW,CAAC,CAAC,CAAC,CA0BhB"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add WorkOS login to your page.
|
|
3
|
+
*
|
|
4
|
+
* ### Setup
|
|
5
|
+
*
|
|
6
|
+
* #### Callback URL
|
|
7
|
+
* ```
|
|
8
|
+
* https://example.com/api/auth/callback/workos
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* #### Configuration
|
|
12
|
+
*```ts
|
|
13
|
+
* import { Auth } from "@auth/core"
|
|
14
|
+
* import WorkOS from "@auth/core/providers/workos"
|
|
15
|
+
*
|
|
16
|
+
* const request = new Request(origin)
|
|
17
|
+
* const response = await Auth(request, {
|
|
18
|
+
* providers: [
|
|
19
|
+
* WorkOS({
|
|
20
|
+
* clientId: WORKOS_CLIENT_ID,
|
|
21
|
+
* clientSecret: WORKOS_CLIENT_SECRET,
|
|
22
|
+
* issuer: WORKOS_ISSUER,
|
|
23
|
+
* }),
|
|
24
|
+
* ],
|
|
25
|
+
* })
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* ### Resources
|
|
29
|
+
*
|
|
30
|
+
* - [WorkOS SSO OAuth documentation](https://workos.com/docs/reference/sso)
|
|
31
|
+
*
|
|
32
|
+
* ### Notes
|
|
33
|
+
*
|
|
34
|
+
* By default, Auth.js assumes that the WorkOS provider is
|
|
35
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
36
|
+
*
|
|
37
|
+
* WorkOS is not an identity provider itself, but, rather, a bridge to multiple single sign-on (SSO) providers.
|
|
38
|
+
* As a result, we need to make some additional changes to authenticate users using WorkOS.
|
|
39
|
+
*
|
|
40
|
+
* In order to sign a user in using WorkOS, we need to specify which WorkOS Connection to use.
|
|
41
|
+
* 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.
|
|
42
|
+
* To add a custom login page, you can use the `pages` option:
|
|
43
|
+
* ```ts
|
|
44
|
+
* pages: {
|
|
45
|
+
* signIn: "/auth/signin",
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
* We can then add a custom login page that displays an input where the user can enter their email address.
|
|
49
|
+
* We then extract the domain from the user's email address and pass it to the `authorizationParams` parameter on the `signIn` function:
|
|
50
|
+
* ```js title="pages/auth/signin.js"
|
|
51
|
+
* import { useState } from "react"
|
|
52
|
+
* import { getProviders, signIn } from "next-auth/react"
|
|
53
|
+
*
|
|
54
|
+
* export default function SignIn({ providers }) {
|
|
55
|
+
* const [email, setEmail] = useState("")
|
|
56
|
+
*
|
|
57
|
+
* return (
|
|
58
|
+
* <>
|
|
59
|
+
* {Object.values(providers).map((provider) => {
|
|
60
|
+
* if (provider.id === "workos") {
|
|
61
|
+
* return (
|
|
62
|
+
* <div key={provider.id}>
|
|
63
|
+
* <input
|
|
64
|
+
* type="email"
|
|
65
|
+
* value={email}
|
|
66
|
+
* placeholder="Email"
|
|
67
|
+
* onChange={(event) => setEmail(event.target.value)}
|
|
68
|
+
* />
|
|
69
|
+
* <button
|
|
70
|
+
* onClick={() =>
|
|
71
|
+
* signIn(provider.id, undefined, {
|
|
72
|
+
* domain: email.split("@")[1],
|
|
73
|
+
* })
|
|
74
|
+
* }
|
|
75
|
+
* >
|
|
76
|
+
* Sign in with SSO
|
|
77
|
+
* </button>
|
|
78
|
+
* </div>
|
|
79
|
+
* )
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* return (
|
|
83
|
+
* <div key={provider.id}>
|
|
84
|
+
* <button onClick={() => signIn(provider.id)}>
|
|
85
|
+
* Sign in with {provider.name}
|
|
86
|
+
* </button>
|
|
87
|
+
* </div>
|
|
88
|
+
* )
|
|
89
|
+
* })}
|
|
90
|
+
* </>
|
|
91
|
+
* )
|
|
92
|
+
* }
|
|
93
|
+
*
|
|
94
|
+
* export async function getServerSideProps(context) {
|
|
95
|
+
* const providers = await getProviders()
|
|
96
|
+
* return {
|
|
97
|
+
* props: { providers },
|
|
98
|
+
* }
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* :::tip
|
|
103
|
+
*
|
|
104
|
+
* The WorkOS provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/workos.ts).
|
|
105
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
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 WorkOS(options) {
|
|
120
|
+
const { issuer = "https://api.workos.com/", connection = "" } = options;
|
|
121
|
+
const connectionParams = new URLSearchParams({ connection });
|
|
122
|
+
return {
|
|
123
|
+
id: "workos",
|
|
124
|
+
name: "WorkOS",
|
|
125
|
+
type: "oauth",
|
|
126
|
+
authorization: `${issuer}sso/authorize?${connectionParams}`,
|
|
127
|
+
token: `${issuer}sso/token`,
|
|
128
|
+
client: {
|
|
129
|
+
token_endpoint_auth_method: "client_secret_post",
|
|
130
|
+
},
|
|
131
|
+
userinfo: `${issuer}sso/profile`,
|
|
132
|
+
profile(profile) {
|
|
133
|
+
return {
|
|
134
|
+
id: profile.id,
|
|
135
|
+
name: `${profile.first_name} ${profile.last_name}`,
|
|
136
|
+
email: profile.email,
|
|
137
|
+
image: profile.raw_attributes.picture ?? null,
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
style: { bg: "#6363f1", text: "#fff" },
|
|
141
|
+
options,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
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
|
+
import { OAuthConfig, OAuthUserConfig } from "./oauth.js";
|
|
12
|
+
/**
|
|
13
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information | Getting information about the user}
|
|
14
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#email-access | Access to email address}
|
|
15
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#avatar-access | Access to the user's profile picture}
|
|
16
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#birthday-access | Access to the date of birth}
|
|
17
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#name-access | Access to login, first name, last name, and gender}
|
|
18
|
+
* - {@link https://yandex.com/dev/id/doc/en/user-information#phone-access | Access to the phone number}
|
|
19
|
+
*/
|
|
20
|
+
export interface YandexProfile {
|
|
21
|
+
/** User's Yandex login. */
|
|
22
|
+
login: string;
|
|
23
|
+
/** Yandex user's unique ID. */
|
|
24
|
+
id: string;
|
|
25
|
+
/**
|
|
26
|
+
* The ID of the app the OAuth token in the request was issued for.
|
|
27
|
+
* Available in the [app properties](https://oauth.yandex.com/). To open properties, click the app name.
|
|
28
|
+
*/
|
|
29
|
+
client_id: string;
|
|
30
|
+
/** Authorized Yandex user ID. It is formed on the Yandex side based on the `client_id` and `user_id` pair. */
|
|
31
|
+
psuid: string;
|
|
32
|
+
/** An array of the user's email addresses. Currently only includes the default email address. */
|
|
33
|
+
emails?: string[];
|
|
34
|
+
/** The default email address for contacting the user. */
|
|
35
|
+
default_email?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Indicates that the stub (profile picture that is automatically assigned when registering in Yandex)
|
|
38
|
+
* ID is specified in the `default_avatar_id` field.
|
|
39
|
+
*/
|
|
40
|
+
is_avatar_empty?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* ID of the Yandex user's profile picture.
|
|
43
|
+
* Format for downloading user avatars: `https://avatars.yandex.net/get-yapic/<default_avatar_id>/<size>`
|
|
44
|
+
* @example "https://avatars.yandex.net/get-yapic/31804/BYkogAC6AoB17bN1HKRFAyKiM4-1/islands-200"
|
|
45
|
+
* Available sizes:
|
|
46
|
+
* `islands-small`: 28×28 pixels.
|
|
47
|
+
* `islands-34`: 34×34 pixels.
|
|
48
|
+
* `islands-middle`: 42×42 pixels.
|
|
49
|
+
* `islands-50`: 50×50 pixels.
|
|
50
|
+
* `islands-retina-small`: 56×56 pixels.
|
|
51
|
+
* `islands-68`: 68×68 pixels.
|
|
52
|
+
* `islands-75`: 75×75 pixels.
|
|
53
|
+
* `islands-retina-middle`: 84×84 pixels.
|
|
54
|
+
* `islands-retina-50`: 100×100 pixels.
|
|
55
|
+
* `islands-200`: 200×200 pixels.
|
|
56
|
+
*/
|
|
57
|
+
default_avatar_id?: string;
|
|
58
|
+
/**
|
|
59
|
+
* The user's date of birth in YYYY-MM-DD format.
|
|
60
|
+
* Unknown elements of the date are filled in with zeros, such as: `0000-12-23`.
|
|
61
|
+
* If the user's date of birth is unknow, birthday will be `null`
|
|
62
|
+
*/
|
|
63
|
+
birthday?: string | null;
|
|
64
|
+
first_name?: string;
|
|
65
|
+
last_name?: string;
|
|
66
|
+
display_name?: string;
|
|
67
|
+
/**
|
|
68
|
+
* The first and last name that the user specified in Yandex ID.
|
|
69
|
+
* Non-Latin characters of the first and last names are presented in Unicode format.
|
|
70
|
+
*/
|
|
71
|
+
real_name?: string;
|
|
72
|
+
/** User's gender. `null` Stands for unknown or unspecified gender. Will be `undefined` if not provided by Yandex. */
|
|
73
|
+
sex?: "male" | "female" | null;
|
|
74
|
+
/**
|
|
75
|
+
* The default phone number for contacting the user.
|
|
76
|
+
* The API can exclude the user's phone number from the response at its discretion.
|
|
77
|
+
* The field contains the following parameters:
|
|
78
|
+
* id: Phone number ID.
|
|
79
|
+
* number: The user's phone number.
|
|
80
|
+
*/
|
|
81
|
+
default_phone?: {
|
|
82
|
+
id: number;
|
|
83
|
+
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(options: OAuthUserConfig<YandexProfile>): OAuthConfig<YandexProfile>;
|
|
131
|
+
//# sourceMappingURL=yandex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yandex.d.ts","sourceRoot":"","sources":["../src/providers/yandex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,8GAA8G;IAC9G,KAAK,EAAE,MAAM,CAAA;IACb,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qHAAqH;IACrH,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAA;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,GACtC,WAAW,CAAC,aAAa,CAAC,CA2B5B"}
|
|
@@ -0,0 +1,80 @@
|
|
|
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
|
+
* Add Yandex login to your page.
|
|
13
|
+
*
|
|
14
|
+
* ### Setup
|
|
15
|
+
*
|
|
16
|
+
* #### Callback URL
|
|
17
|
+
* ```
|
|
18
|
+
* https://example.com/api/auth/callback/yandex
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* #### Configuration
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { Auth } from "@auth/core"
|
|
24
|
+
* import Yandex from "@auth/core/providers/yandex"
|
|
25
|
+
*
|
|
26
|
+
* const request = new Request(origin)
|
|
27
|
+
* const response = await Auth(request, {
|
|
28
|
+
* providers: [
|
|
29
|
+
* Yandex({ clientId: YANDEX_CLIENT_ID, clientSecret: YANDEX_CLIENT_SECRET }),
|
|
30
|
+
* ],
|
|
31
|
+
* })
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* ### Resources
|
|
35
|
+
*
|
|
36
|
+
* - [Yandex - Creating an OAuth app](https://yandex.com/dev/id/doc/en/register-client#create)
|
|
37
|
+
* - [Yandex - Manage OAuth apps](https://oauth.yandex.com/)
|
|
38
|
+
* - [Yandex - OAuth documentation](https://yandex.com/dev/id/doc/en/)
|
|
39
|
+
* - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
|
|
40
|
+
* - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts)
|
|
41
|
+
*
|
|
42
|
+
*:::tip
|
|
43
|
+
* The Yandex provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/yandex.ts).
|
|
44
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
45
|
+
* :::
|
|
46
|
+
*
|
|
47
|
+
* :::info **Disclaimer**
|
|
48
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
49
|
+
*
|
|
50
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
51
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
52
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
53
|
+
* :::
|
|
54
|
+
*/
|
|
55
|
+
export default function Yandex(options) {
|
|
56
|
+
return {
|
|
57
|
+
id: "yandex",
|
|
58
|
+
name: "Yandex",
|
|
59
|
+
type: "oauth",
|
|
60
|
+
/** @see [Data access](https://yandex.com/dev/id/doc/en/register-client#access) */
|
|
61
|
+
authorization: "https://oauth.yandex.ru/authorize?scope=login:info+login:email+login:avatar",
|
|
62
|
+
token: "https://oauth.yandex.ru/token",
|
|
63
|
+
userinfo: "https://login.yandex.ru/info?format=json",
|
|
64
|
+
profile(profile) {
|
|
65
|
+
return {
|
|
66
|
+
id: profile.id,
|
|
67
|
+
name: profile.display_name ?? profile.real_name ?? profile.first_name,
|
|
68
|
+
email: profile.default_email ?? profile.emails?.[0] ?? null,
|
|
69
|
+
image: !profile.is_avatar_empty && profile.default_avatar_id
|
|
70
|
+
? `https://avatars.yandex.net/get-yapic/${profile.default_avatar_id}/islands-200`
|
|
71
|
+
: null,
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
style: {
|
|
75
|
+
bg: "#ffcc00",
|
|
76
|
+
text: "#000",
|
|
77
|
+
},
|
|
78
|
+
options,
|
|
79
|
+
};
|
|
80
|
+
}
|