@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,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Discord</b> integration.</span>
|
|
4
|
+
* <a href="https://discord.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/discord.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/discord
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Corresponds to the user structure documented here:
|
|
15
|
+
* https://discord.com/developers/docs/resources/user#user-object-user-structure
|
|
16
|
+
*/
|
|
17
|
+
export interface DiscordProfile extends Record<string, any> {
|
|
18
|
+
/** the user's id (i.e. the numerical snowflake) */
|
|
19
|
+
id: string
|
|
20
|
+
/** the user's username, not unique across the platform */
|
|
21
|
+
username: string
|
|
22
|
+
/** the user's Discord-tag */
|
|
23
|
+
discriminator: string
|
|
24
|
+
/** the user's display name, if it is set */
|
|
25
|
+
global_name: string | null
|
|
26
|
+
/**
|
|
27
|
+
* the user's avatar hash:
|
|
28
|
+
* https://discord.com/developers/docs/reference#image-formatting
|
|
29
|
+
*/
|
|
30
|
+
avatar: string | null
|
|
31
|
+
/** whether the user belongs to an OAuth2 application */
|
|
32
|
+
bot?: boolean
|
|
33
|
+
/**
|
|
34
|
+
* whether the user is an Official Discord System user (part of the urgent
|
|
35
|
+
* message system)
|
|
36
|
+
*/
|
|
37
|
+
system?: boolean
|
|
38
|
+
/** whether the user has two factor enabled on their account */
|
|
39
|
+
mfa_enabled: boolean
|
|
40
|
+
/**
|
|
41
|
+
* the user's banner hash:
|
|
42
|
+
* https://discord.com/developers/docs/reference#image-formatting
|
|
43
|
+
*/
|
|
44
|
+
banner: string | null
|
|
45
|
+
|
|
46
|
+
/** the user's banner color encoded as an integer representation of hexadecimal color code */
|
|
47
|
+
accent_color: number | null
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* the user's chosen language option:
|
|
51
|
+
* https://discord.com/developers/docs/reference#locales
|
|
52
|
+
*/
|
|
53
|
+
locale: string
|
|
54
|
+
/** whether the email on this account has been verified */
|
|
55
|
+
verified: boolean
|
|
56
|
+
/** the user's email */
|
|
57
|
+
email: string | null
|
|
58
|
+
/**
|
|
59
|
+
* the flags on a user's account:
|
|
60
|
+
* https://discord.com/developers/docs/resources/user#user-object-user-flags
|
|
61
|
+
*/
|
|
62
|
+
flags: number
|
|
63
|
+
/**
|
|
64
|
+
* the type of Nitro subscription on a user's account:
|
|
65
|
+
* https://discord.com/developers/docs/resources/user#user-object-premium-types
|
|
66
|
+
*/
|
|
67
|
+
premium_type: number
|
|
68
|
+
/**
|
|
69
|
+
* the public flags on a user's account:
|
|
70
|
+
* https://discord.com/developers/docs/resources/user#user-object-user-flags
|
|
71
|
+
*/
|
|
72
|
+
public_flags: number
|
|
73
|
+
/** undocumented field; corresponds to the user's custom nickname */
|
|
74
|
+
display_name: string | null
|
|
75
|
+
/**
|
|
76
|
+
* undocumented field; corresponds to the Discord feature where you can e.g.
|
|
77
|
+
* put your avatar inside of an ice cube
|
|
78
|
+
*/
|
|
79
|
+
avatar_decoration: string | null
|
|
80
|
+
/**
|
|
81
|
+
* undocumented field; corresponds to the premium feature where you can
|
|
82
|
+
* select a custom banner color
|
|
83
|
+
*/
|
|
84
|
+
banner_color: string | null
|
|
85
|
+
/** undocumented field; the CDN URL of their profile picture */
|
|
86
|
+
image_url: string
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Add Discord login to your page.
|
|
91
|
+
*
|
|
92
|
+
* ### Setup
|
|
93
|
+
*
|
|
94
|
+
* #### Callback URL
|
|
95
|
+
* ```
|
|
96
|
+
* https://example.com/api/auth/callback/discord
|
|
97
|
+
* ```
|
|
98
|
+
*
|
|
99
|
+
* #### Configuration
|
|
100
|
+
*```ts
|
|
101
|
+
* import { Auth } from "@auth/core"
|
|
102
|
+
* import Discord from "@auth/core/providers/discord"
|
|
103
|
+
*
|
|
104
|
+
* const request = new Request(origin)
|
|
105
|
+
* const response = await Auth(request, {
|
|
106
|
+
* providers: [
|
|
107
|
+
* Discord({
|
|
108
|
+
* clientId: DISCORD_CLIENT_ID,
|
|
109
|
+
* clientSecret: DISCORD_CLIENT_SECRET,
|
|
110
|
+
* }),
|
|
111
|
+
* ],
|
|
112
|
+
* })
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* ### Resources
|
|
116
|
+
*
|
|
117
|
+
* - [Discord OAuth documentation](https://discord.com/developers/docs/topics/oauth2)
|
|
118
|
+
* - [Discord OAuth apps](https://discord.com/developers/applications)
|
|
119
|
+
*
|
|
120
|
+
* ### Notes
|
|
121
|
+
*
|
|
122
|
+
* By default, Auth.js assumes that the Discord provider is
|
|
123
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
124
|
+
*
|
|
125
|
+
* :::tip
|
|
126
|
+
*
|
|
127
|
+
* The Discord provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/discord.ts).
|
|
128
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
129
|
+
*
|
|
130
|
+
* :::
|
|
131
|
+
*
|
|
132
|
+
* :::info **Disclaimer**
|
|
133
|
+
*
|
|
134
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
135
|
+
*
|
|
136
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
137
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
138
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
139
|
+
*
|
|
140
|
+
* :::
|
|
141
|
+
*/
|
|
142
|
+
export default function Discord<P extends DiscordProfile>(
|
|
143
|
+
options: OAuthUserConfig<P>
|
|
144
|
+
): OAuthConfig<P> {
|
|
145
|
+
return {
|
|
146
|
+
id: "discord",
|
|
147
|
+
name: "Discord",
|
|
148
|
+
type: "oauth",
|
|
149
|
+
authorization: {
|
|
150
|
+
url: "https://discord.com/api/oauth2/authorize",
|
|
151
|
+
params: { scope: "identify email" },
|
|
152
|
+
},
|
|
153
|
+
token: "https://discord.com/api/oauth2/token",
|
|
154
|
+
userinfo: "https://discord.com/api/users/@me",
|
|
155
|
+
profile(profile) {
|
|
156
|
+
if (profile.avatar === null) {
|
|
157
|
+
const defaultAvatarNumber =
|
|
158
|
+
profile.discriminator === "0"
|
|
159
|
+
? Number(BigInt(profile.id) >> BigInt(22)) % 6
|
|
160
|
+
: parseInt(profile.discriminator) % 5
|
|
161
|
+
profile.image_url = `https://cdn.discordapp.com/embed/avatars/${defaultAvatarNumber}.png`
|
|
162
|
+
} else {
|
|
163
|
+
const format = profile.avatar.startsWith("a_") ? "gif" : "png"
|
|
164
|
+
profile.image_url = `https://cdn.discordapp.com/avatars/${profile.id}/${profile.avatar}.${format}`
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
id: profile.id,
|
|
168
|
+
name: profile.global_name ?? profile.username,
|
|
169
|
+
email: profile.email,
|
|
170
|
+
image: profile.image_url,
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
style: { bg: "#5865F2", text: "#fff" },
|
|
174
|
+
options,
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Dribbble</b> integration.</span>
|
|
4
|
+
* <a href="https://dribbble.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/dribbble.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/dribbble
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface DribbbleProfile extends Record<string, any> {
|
|
14
|
+
id: number
|
|
15
|
+
name: string
|
|
16
|
+
email: string
|
|
17
|
+
avatar_url: string
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* Add Dribbble login to your page.
|
|
23
|
+
*
|
|
24
|
+
* ### Setup
|
|
25
|
+
*
|
|
26
|
+
* #### Callback URL
|
|
27
|
+
* ```
|
|
28
|
+
* https://example.com/api/auth/callback/dribbble
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* #### Configuration
|
|
32
|
+
*```ts
|
|
33
|
+
* import { Auth } from "@auth/core"
|
|
34
|
+
* import Dribbble from "@auth/core/providers/dribbble"
|
|
35
|
+
*
|
|
36
|
+
* const request = new Request(origin)
|
|
37
|
+
* const response = await Auth(request, {
|
|
38
|
+
* providers: [
|
|
39
|
+
* Dribbble({
|
|
40
|
+
* clientId: DRIBBBLE_CLIENT_ID,
|
|
41
|
+
* clientSecret: DRIBBBLE_CLIENT_SECRET,
|
|
42
|
+
* }),
|
|
43
|
+
* ],
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* ### Resources
|
|
48
|
+
*
|
|
49
|
+
* - [Dribbble API](https://developer.dribbble.com)
|
|
50
|
+
* - [Dribbble OAuth](https://developer.dribbble.com/v2/oauth/)
|
|
51
|
+
* - [Dribbble Applications](https://dribbble.com/account/applications/new)
|
|
52
|
+
*
|
|
53
|
+
* ### Notes
|
|
54
|
+
*
|
|
55
|
+
* By default, Auth.js assumes that the GitHub provider is
|
|
56
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
57
|
+
*
|
|
58
|
+
* :::tip
|
|
59
|
+
*
|
|
60
|
+
* The Dribbble provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/dribbble.ts).
|
|
61
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
62
|
+
*
|
|
63
|
+
* :::
|
|
64
|
+
*
|
|
65
|
+
* :::info **Disclaimer**
|
|
66
|
+
*
|
|
67
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
68
|
+
*
|
|
69
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
70
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
71
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
72
|
+
*
|
|
73
|
+
* :::
|
|
74
|
+
*
|
|
75
|
+
* :::tip
|
|
76
|
+
* You can optionally set the scope to `public upload` for more advanced scenarios. If omitted, the default `public` scope will be used for authentication purposes.
|
|
77
|
+
* :::
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
export default function Dribbble<P extends DribbbleProfile>(
|
|
81
|
+
options: OAuthUserConfig<P> & {
|
|
82
|
+
/**
|
|
83
|
+
* Reference: https://developer.dribbble.com/v2/oauth/#scopes
|
|
84
|
+
*
|
|
85
|
+
* For the purposes of NextAuth.js `upload`-only scope makes no sense,
|
|
86
|
+
* therefore it is excluded from suggested values. Treated by Dribbble as `public` when omitted.
|
|
87
|
+
*
|
|
88
|
+
* @default public
|
|
89
|
+
*/
|
|
90
|
+
scope?: "public" | "public upload"
|
|
91
|
+
}
|
|
92
|
+
): OAuthConfig<P> {
|
|
93
|
+
return {
|
|
94
|
+
id: "dribbble",
|
|
95
|
+
name: "Dribbble",
|
|
96
|
+
type: "oauth",
|
|
97
|
+
|
|
98
|
+
authorization: {
|
|
99
|
+
url: "https://dribbble.com/oauth/authorize",
|
|
100
|
+
params: { scope: options.scope },
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
token: "https://dribbble.com/oauth/token",
|
|
104
|
+
userinfo: "https://api.dribbble.com/v2/user",
|
|
105
|
+
|
|
106
|
+
profile(profile) {
|
|
107
|
+
return {
|
|
108
|
+
id: profile.id.toString(),
|
|
109
|
+
name: profile.name,
|
|
110
|
+
email: profile.email,
|
|
111
|
+
image: profile.avatar_url,
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
style: {
|
|
116
|
+
text: "#fff",
|
|
117
|
+
bg: "#000",
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
options,
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Dropbox</b> integration.</span>
|
|
4
|
+
* <a href="https://dropbox.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/dropbox.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/dropbox
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Add Dropbox login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/dropbox
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import Dropbox from "@auth/core/providers/dropbox"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* Dropbox({
|
|
32
|
+
* clientId: DROPBOX_CLIENT_ID,
|
|
33
|
+
* clientSecret: DROPBOX_CLIENT_SECRET,
|
|
34
|
+
* }),
|
|
35
|
+
* ],
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### Resources
|
|
40
|
+
*
|
|
41
|
+
* - [Dropbox OAuth documentation](https://developers.dropbox.com/oauth-guide)
|
|
42
|
+
*
|
|
43
|
+
* ### Notes
|
|
44
|
+
*
|
|
45
|
+
* By default, Auth.js assumes that the Dropbox provider is
|
|
46
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
47
|
+
*
|
|
48
|
+
* :::tip
|
|
49
|
+
*
|
|
50
|
+
* The Dropbox provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/dropbox.ts).
|
|
51
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
52
|
+
*
|
|
53
|
+
* :::
|
|
54
|
+
*
|
|
55
|
+
* :::info **Disclaimer**
|
|
56
|
+
*
|
|
57
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
58
|
+
*
|
|
59
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
60
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
61
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
62
|
+
*
|
|
63
|
+
* :::
|
|
64
|
+
*/
|
|
65
|
+
export default function Dropbox(
|
|
66
|
+
options: OAuthUserConfig<Record<string, any>>
|
|
67
|
+
): OAuthConfig<Record<string, any>> {
|
|
68
|
+
return {
|
|
69
|
+
id: "dropbox",
|
|
70
|
+
name: "Dropbox",
|
|
71
|
+
type: "oauth",
|
|
72
|
+
authorization: {
|
|
73
|
+
url: "https://www.dropbox.com/oauth2/authorize",
|
|
74
|
+
params: {
|
|
75
|
+
token_access_type: "offline",
|
|
76
|
+
scope: "account_info.read",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
token: "https://api.dropboxapi.com/oauth2/token",
|
|
80
|
+
userinfo: {
|
|
81
|
+
url: "https://api.dropboxapi.com/2/users/get_current_account",
|
|
82
|
+
async request({ tokens, provider }) {
|
|
83
|
+
return await fetch(provider.userinfo?.url as URL, {
|
|
84
|
+
method: "POST",
|
|
85
|
+
headers: {
|
|
86
|
+
Authorization: `Bearer ${tokens.access_token}`,
|
|
87
|
+
},
|
|
88
|
+
}).then(async (res) => await res.json())
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
profile(profile) {
|
|
92
|
+
return {
|
|
93
|
+
id: profile.account_id,
|
|
94
|
+
name: profile.name.display_name,
|
|
95
|
+
email: profile.email,
|
|
96
|
+
image: profile.profile_photo_url,
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
style: { brandColor: "#0061fe" },
|
|
100
|
+
options,
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>DuendeIdentityServer6</b> integration.</span>
|
|
4
|
+
* <a href="https://docs.duendesoftware.com/identityserver/v6">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/duende-identity-server6.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/duende-identity-server6
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./oauth.js"
|
|
12
|
+
|
|
13
|
+
export interface DuendeISUser extends Record<string, any> {
|
|
14
|
+
email: string
|
|
15
|
+
id: string
|
|
16
|
+
name: string
|
|
17
|
+
verified: boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Add DuendeIdentityServer6 login to your page.
|
|
22
|
+
*
|
|
23
|
+
* ### Setup
|
|
24
|
+
*
|
|
25
|
+
* #### Callback URL
|
|
26
|
+
* ```
|
|
27
|
+
* https://example.com/api/auth/callback/duende-identity-server6
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* #### Configuration
|
|
31
|
+
*```ts
|
|
32
|
+
* import { Auth } from "@auth/core"
|
|
33
|
+
* import DuendeIdentityServer6 from "@auth/core/providers/duende-identity-server6"
|
|
34
|
+
*
|
|
35
|
+
* const request = new Request(origin)
|
|
36
|
+
* const response = await Auth(request, {
|
|
37
|
+
* providers: [
|
|
38
|
+
* DuendeIdentityServer6({
|
|
39
|
+
* clientId: DIS6_CLIENT_ID,
|
|
40
|
+
* clientSecret: DIS6_CLIENT_SECRET,
|
|
41
|
+
* issuer: DIS6_ISSUER,
|
|
42
|
+
* }),
|
|
43
|
+
* ],
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* ### Resources
|
|
48
|
+
*
|
|
49
|
+
* - [DuendeIdentityServer6 documentation](https://docs.duendesoftware.com/identityserver/v6)
|
|
50
|
+
*
|
|
51
|
+
* ### Notes
|
|
52
|
+
*
|
|
53
|
+
*
|
|
54
|
+
* ## Demo IdentityServer
|
|
55
|
+
*
|
|
56
|
+
* The configuration below is for the demo server at https://demo.duendesoftware.com/
|
|
57
|
+
*
|
|
58
|
+
* If you want to try it out, you can copy and paste the configuration below.
|
|
59
|
+
*
|
|
60
|
+
* You can sign in to the demo service with either <b>bob/bob</b> or <b>alice/alice</b>.
|
|
61
|
+
*
|
|
62
|
+
* ```ts
|
|
63
|
+
* import DuendeIdentityServer6 from "@auth/core/providers/duende-identity-server6"
|
|
64
|
+
* providers: [
|
|
65
|
+
* DuendeIdentityServer6({
|
|
66
|
+
* clientId: "interactive.confidential",
|
|
67
|
+
* clientSecret: "secret",
|
|
68
|
+
* issuer: "https://demo.duendesoftware.com",
|
|
69
|
+
* })
|
|
70
|
+
* ]
|
|
71
|
+
* ```
|
|
72
|
+
* By default, Auth.js assumes that the DuendeIdentityServer6 provider is
|
|
73
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
74
|
+
*
|
|
75
|
+
* :::tip
|
|
76
|
+
*
|
|
77
|
+
* The DuendeIdentityServer6 provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/duende-identity-server6.ts).
|
|
78
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
79
|
+
*
|
|
80
|
+
* :::
|
|
81
|
+
*
|
|
82
|
+
* :::info **Disclaimer**
|
|
83
|
+
*
|
|
84
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
85
|
+
*
|
|
86
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
87
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
88
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
89
|
+
*
|
|
90
|
+
* :::
|
|
91
|
+
*/
|
|
92
|
+
export default function DuendeIdentityServer6<P extends DuendeISUser>(
|
|
93
|
+
options: OAuthUserConfig<P>
|
|
94
|
+
): OAuthConfig<P> {
|
|
95
|
+
return {
|
|
96
|
+
id: "duende-identity-server6",
|
|
97
|
+
name: "DuendeIdentityServer6",
|
|
98
|
+
type: "oidc",
|
|
99
|
+
options,
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { CommonProviderOptions } from "./index.js"
|
|
2
|
+
import type { Awaitable, Theme } from "../types.js"
|
|
3
|
+
export type { EmailProviderId } from "./provider-types.js"
|
|
4
|
+
|
|
5
|
+
// TODO: Kepts for backwards compatibility
|
|
6
|
+
// Remove this import and encourage users
|
|
7
|
+
// to import it from @auth/core/providers/nodemailer directly
|
|
8
|
+
import Nodemailer from "./nodemailer.js"
|
|
9
|
+
import type { NodemailerConfig, NodemailerUserConfig } from "./nodemailer.js"
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated
|
|
13
|
+
*
|
|
14
|
+
* Import this provider from the `providers/nodemailer` submodule instead of `providers/email`.
|
|
15
|
+
*
|
|
16
|
+
* To log in with nodemailer, change `signIn("email")` to `signIn("nodemailer")`
|
|
17
|
+
*/
|
|
18
|
+
export default function Email(config: NodemailerUserConfig): NodemailerConfig {
|
|
19
|
+
return {
|
|
20
|
+
...Nodemailer(config),
|
|
21
|
+
id: "email",
|
|
22
|
+
name: "Email",
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// TODO: Rename to Token provider
|
|
27
|
+
// when started working on https://github.com/nextauthjs/next-auth/discussions/1465
|
|
28
|
+
export type EmailProviderType = "email"
|
|
29
|
+
|
|
30
|
+
export type EmailProviderSendVerificationRequestParams = {
|
|
31
|
+
identifier: string
|
|
32
|
+
url: string
|
|
33
|
+
expires: Date
|
|
34
|
+
provider: EmailConfig
|
|
35
|
+
token: string
|
|
36
|
+
theme: Theme
|
|
37
|
+
request: Request
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface EmailConfig extends CommonProviderOptions {
|
|
41
|
+
id: string
|
|
42
|
+
type: "email"
|
|
43
|
+
name: string
|
|
44
|
+
from?: string
|
|
45
|
+
maxAge?: number
|
|
46
|
+
sendVerificationRequest: (
|
|
47
|
+
params: EmailProviderSendVerificationRequestParams
|
|
48
|
+
) => Awaitable<void>
|
|
49
|
+
/** Used to hash the verification token. */
|
|
50
|
+
secret?: string
|
|
51
|
+
/** Used with HTTP-based email providers. */
|
|
52
|
+
apiKey?: string
|
|
53
|
+
/** Used with SMTP-based email providers. */
|
|
54
|
+
server?: NodemailerConfig["server"]
|
|
55
|
+
generateVerificationToken?: () => Awaitable<string>
|
|
56
|
+
normalizeIdentifier?: (identifier: string) => string
|
|
57
|
+
options?: EmailUserConfig
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export type EmailUserConfig = Omit<Partial<EmailConfig>, "options" | "type">
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#f05537", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Eventbrite</b> integration.</span>
|
|
4
|
+
* <a href="https://www.eventbrite.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/eventbrite.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/eventbrite
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @see https://www.eventbrite.com/platform/api#/reference/user/retrieve-your-user/retrieve-your-user
|
|
16
|
+
*/
|
|
17
|
+
export interface EventbriteProfile extends Record<string, any> {
|
|
18
|
+
id: string
|
|
19
|
+
name: string
|
|
20
|
+
first_name: string
|
|
21
|
+
last_name: string
|
|
22
|
+
emails: { email: string; verified: boolean; primary: boolean }[]
|
|
23
|
+
image_id: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Add Eventbrite login to your page and make requests to [Eventbrite APIs](https://www.eventbrite.com/platform/api).
|
|
28
|
+
*
|
|
29
|
+
* ### Setup
|
|
30
|
+
*
|
|
31
|
+
* #### Callback URL
|
|
32
|
+
* ```
|
|
33
|
+
* https://example.com/api/auth/callback/eventbrite
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* #### Configuration
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { Auth } from "@auth/core"
|
|
39
|
+
* import Eventbrite from "@auth/core/providers/eventbrite"
|
|
40
|
+
*
|
|
41
|
+
* const request = new Request(origin)
|
|
42
|
+
* const response = await Auth(request, {
|
|
43
|
+
* providers: [Eventbrite({ clientId: EVENTBRITE_CLIENT_ID, clientSecret: EVENTBRITE_CLIENT_SECRET })],
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* ### Resources
|
|
48
|
+
*
|
|
49
|
+
* - [Eventbrite OAuth documentation](https://www.eventbrite.com/platform/api#/introduction/authentication)
|
|
50
|
+
* - [Eventbrite App Management](https://www.eventbrite.com/account-settings/apps)
|
|
51
|
+
* - [Learn more about OAuth](https://authjs.dev/concepts/oauth)
|
|
52
|
+
* - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/eventbrite.ts)
|
|
53
|
+
*
|
|
54
|
+
* ### Notes
|
|
55
|
+
*
|
|
56
|
+
* By default, Auth.js assumes that the Eventbrite provider is
|
|
57
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
58
|
+
*
|
|
59
|
+
* :::tip
|
|
60
|
+
*
|
|
61
|
+
* The Eventbrite provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/eventbrite.ts).
|
|
62
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
63
|
+
*
|
|
64
|
+
* :::
|
|
65
|
+
*
|
|
66
|
+
* :::info **Disclaimer**
|
|
67
|
+
*
|
|
68
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
69
|
+
*
|
|
70
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
71
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
72
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
73
|
+
*
|
|
74
|
+
* :::
|
|
75
|
+
*/
|
|
76
|
+
export default function Eventbrite<P extends EventbriteProfile>(
|
|
77
|
+
config: OAuthUserConfig<P>
|
|
78
|
+
): OAuthConfig<P> {
|
|
79
|
+
return {
|
|
80
|
+
id: "eventbrite",
|
|
81
|
+
name: "Eventbrite",
|
|
82
|
+
type: "oauth",
|
|
83
|
+
authorization: {
|
|
84
|
+
url: "https://www.eventbrite.com/oauth/authorize",
|
|
85
|
+
params: { scope: "user.profile" },
|
|
86
|
+
},
|
|
87
|
+
token: "https://www.eventbrite.com/oauth/token",
|
|
88
|
+
userinfo: "https://www.eventbriteapi.com/v3/users/me/",
|
|
89
|
+
profile(profile) {
|
|
90
|
+
return {
|
|
91
|
+
id: profile.id,
|
|
92
|
+
name: profile.name,
|
|
93
|
+
email: profile.emails.find((e) => e.primary)?.email,
|
|
94
|
+
image: profile.image_id
|
|
95
|
+
? `https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F${profile.image_id}%2F1%2Foriginal.jpg`
|
|
96
|
+
: null,
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
client: {
|
|
100
|
+
token_endpoint_auth_method: "client_secret_post",
|
|
101
|
+
},
|
|
102
|
+
style: { bg: "#f05537", text: "#fff" },
|
|
103
|
+
options: config,
|
|
104
|
+
}
|
|
105
|
+
}
|