@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,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>EVEOnline</b> integration.</span>
|
|
4
|
+
* <a href="https://eveonline.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/eveonline.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/eveonline
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface EVEOnlineProfile extends Record<string, any> {
|
|
14
|
+
CharacterID: number
|
|
15
|
+
CharacterName: string
|
|
16
|
+
ExpiresOn: string
|
|
17
|
+
Scopes: string
|
|
18
|
+
TokenType: string
|
|
19
|
+
CharacterOwnerHash: string
|
|
20
|
+
IntellectualProperty: string
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Add EveOnline login to your page.
|
|
25
|
+
*
|
|
26
|
+
* ### Setup
|
|
27
|
+
*
|
|
28
|
+
* #### Callback URL
|
|
29
|
+
* ```
|
|
30
|
+
* https://example.com/api/auth/callback/eveonline
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* #### Configuration
|
|
34
|
+
*```ts
|
|
35
|
+
* import { Auth } from "@auth/core"
|
|
36
|
+
* import EveOnline from "@auth/core/providers/eveonline"
|
|
37
|
+
*
|
|
38
|
+
* const request = new Request(origin)
|
|
39
|
+
* const response = await Auth(request, {
|
|
40
|
+
* providers: [
|
|
41
|
+
* EveOnline({
|
|
42
|
+
* clientId: EVEONLINE_CLIENT_ID,
|
|
43
|
+
* clientSecret: EVEONLINE_CLIENT_SECRET,
|
|
44
|
+
* }),
|
|
45
|
+
* ],
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* ### Resources
|
|
50
|
+
*
|
|
51
|
+
* - [EveOnline OAuth documentation](https://developers.eveonline.com/blog/article/sso-to-authenticated-calls)
|
|
52
|
+
*
|
|
53
|
+
* ### Notes
|
|
54
|
+
*
|
|
55
|
+
* :::tip
|
|
56
|
+
* When creating your application, make sure to select `Authentication Only` as the connection type.
|
|
57
|
+
* :::
|
|
58
|
+
*
|
|
59
|
+
* :::tip
|
|
60
|
+
* If using JWT for the session, you can add the `CharacterID` to the JWT and session. Example:
|
|
61
|
+
* ```ts
|
|
62
|
+
* options: {
|
|
63
|
+
* jwt: {
|
|
64
|
+
* secret: process.env.JWT_SECRET,
|
|
65
|
+
* },
|
|
66
|
+
* callbacks: {
|
|
67
|
+
* session: async ({ session, token }) => {
|
|
68
|
+
* session.user.id = token.id;
|
|
69
|
+
* return session;
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
* :::
|
|
75
|
+
* By default, Auth.js assumes that the EveOnline provider is
|
|
76
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
77
|
+
*
|
|
78
|
+
* :::tip
|
|
79
|
+
*
|
|
80
|
+
* The EveOnline provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/eveonline.ts).
|
|
81
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
82
|
+
*
|
|
83
|
+
* :::
|
|
84
|
+
*
|
|
85
|
+
* :::info **Disclaimer**
|
|
86
|
+
*
|
|
87
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
88
|
+
*
|
|
89
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
90
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
91
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
92
|
+
*
|
|
93
|
+
* :::
|
|
94
|
+
*/
|
|
95
|
+
export default function EVEOnline<P extends EVEOnlineProfile>(
|
|
96
|
+
options: OAuthUserConfig<P>
|
|
97
|
+
): OAuthConfig<P> {
|
|
98
|
+
return {
|
|
99
|
+
id: "eveonline",
|
|
100
|
+
name: "EVE Online",
|
|
101
|
+
type: "oauth",
|
|
102
|
+
authorization:
|
|
103
|
+
"https://login.eveonline.com/v2/oauth/authorize?scope=publicData",
|
|
104
|
+
token: "https://login.eveonline.com/v2/oauth/token",
|
|
105
|
+
userinfo: "https://login.eveonline.com/oauth/verify",
|
|
106
|
+
checks: ["state"],
|
|
107
|
+
profile(profile) {
|
|
108
|
+
return {
|
|
109
|
+
id: String(profile.CharacterID),
|
|
110
|
+
name: profile.CharacterName,
|
|
111
|
+
email: null,
|
|
112
|
+
image: `https://image.eveonline.com/Character/${profile.CharacterID}_128.jpg`,
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
options,
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Facebook</b> integration.</span>
|
|
4
|
+
* <a href="https://facebook.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/facebook.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/facebook
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
interface FacebookPictureData {
|
|
14
|
+
url: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface FacebookPicture {
|
|
18
|
+
data: FacebookPictureData
|
|
19
|
+
}
|
|
20
|
+
export interface FacebookProfile extends Record<string, any> {
|
|
21
|
+
id: string
|
|
22
|
+
picture: FacebookPicture
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Add Facebook login to your page.
|
|
27
|
+
*
|
|
28
|
+
* ### Setup
|
|
29
|
+
*
|
|
30
|
+
* #### Callback URL
|
|
31
|
+
* ```
|
|
32
|
+
* https://example.com/api/auth/callback/facebook
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* #### Configuration
|
|
36
|
+
*```ts
|
|
37
|
+
* import { Auth } from "@auth/core"
|
|
38
|
+
* import Facebook from "@auth/core/providers/facebook"
|
|
39
|
+
*
|
|
40
|
+
* const request = new Request(origin)
|
|
41
|
+
* const response = await Auth(request, {
|
|
42
|
+
* providers: [
|
|
43
|
+
* Facebook({
|
|
44
|
+
* clientId: FACEBOOK_CLIENT_ID,
|
|
45
|
+
* clientSecret: FACEBOOK_CLIENT_SECRET,
|
|
46
|
+
* }),
|
|
47
|
+
* ],
|
|
48
|
+
* })
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ### Resources
|
|
52
|
+
*
|
|
53
|
+
* - [Facebook OAuth documentation](https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/)
|
|
54
|
+
*
|
|
55
|
+
* ### Notes
|
|
56
|
+
*
|
|
57
|
+
* :::tip
|
|
58
|
+
* Production applications cannot use localhost URLs to sign in with Facebook. You need to use a dedicated development application in Facebook to use localhost callback URLs.
|
|
59
|
+
* :::
|
|
60
|
+
*
|
|
61
|
+
* :::tip
|
|
62
|
+
* Email address may not be returned for accounts created on mobile.
|
|
63
|
+
* :::
|
|
64
|
+
*
|
|
65
|
+
* By default, Auth.js assumes that the Facebook provider is
|
|
66
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
67
|
+
*
|
|
68
|
+
* :::tip
|
|
69
|
+
*
|
|
70
|
+
* The Facebook provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/facebook.ts).
|
|
71
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
72
|
+
*
|
|
73
|
+
* :::
|
|
74
|
+
*
|
|
75
|
+
* :::info **Disclaimer**
|
|
76
|
+
*
|
|
77
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
78
|
+
*
|
|
79
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
80
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
81
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
82
|
+
*
|
|
83
|
+
* :::
|
|
84
|
+
*/
|
|
85
|
+
export default function Facebook<P extends FacebookProfile>(
|
|
86
|
+
options: OAuthUserConfig<P>
|
|
87
|
+
): OAuthConfig<P> {
|
|
88
|
+
return {
|
|
89
|
+
id: "facebook",
|
|
90
|
+
name: "Facebook",
|
|
91
|
+
type: "oauth",
|
|
92
|
+
authorization: {
|
|
93
|
+
url: "https://www.facebook.com/v19.0/dialog/oauth",
|
|
94
|
+
params: {
|
|
95
|
+
scope: "email",
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
token: "https://graph.facebook.com/oauth/access_token",
|
|
99
|
+
userinfo: {
|
|
100
|
+
// https://developers.facebook.com/docs/graph-api/reference/user/#fields
|
|
101
|
+
url: "https://graph.facebook.com/me?fields=id,name,email,picture",
|
|
102
|
+
async request({ tokens, provider }) {
|
|
103
|
+
return await fetch(provider.userinfo?.url as URL, {
|
|
104
|
+
headers: { Authorization: `Bearer ${tokens.access_token}` },
|
|
105
|
+
}).then(async (res) => await res.json())
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
profile(profile: P) {
|
|
109
|
+
return {
|
|
110
|
+
id: profile.id,
|
|
111
|
+
name: profile.name,
|
|
112
|
+
email: profile.email,
|
|
113
|
+
image: profile.picture.data.url,
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
style: { bg: "#006aff", text: "#fff" },
|
|
117
|
+
options,
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>FACEIT</b> integration.</span>
|
|
4
|
+
* <a href="https://faceit.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/faceit.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/faceit
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Add FACEIT login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/faceit
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import FACEIT from "@auth/core/providers/faceit"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* FACEIT({ clientId: FACEIT_CLIENT_ID, clientSecret: FACEIT_CLIENT_SECRET }),
|
|
32
|
+
* ],
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* ### Resources
|
|
37
|
+
*
|
|
38
|
+
* - [FACEIT OAuth documentation](https://cdn.faceit.com/third_party/docs/FACEIT_Connect_3.0.pdf)
|
|
39
|
+
*
|
|
40
|
+
* ### Notes
|
|
41
|
+
*
|
|
42
|
+
* Grant type: Authorization Code
|
|
43
|
+
* Scopes to have basic infos (email, nickname, guid and avatar) : openid, email, profile
|
|
44
|
+
* By default, Auth.js assumes that the FACEIT provider is
|
|
45
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
46
|
+
*
|
|
47
|
+
* :::tip
|
|
48
|
+
*
|
|
49
|
+
* The FACEIT provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/faceit.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 FACEIT(
|
|
65
|
+
options: OAuthUserConfig<Record<string, any>>
|
|
66
|
+
): OAuthConfig<Record<string, any>> {
|
|
67
|
+
return {
|
|
68
|
+
id: "faceit",
|
|
69
|
+
name: "FACEIT",
|
|
70
|
+
type: "oauth",
|
|
71
|
+
authorization: "https://accounts.faceit.com/accounts?redirect_popup=true",
|
|
72
|
+
// @ts-expect-error - TODO fix this
|
|
73
|
+
headers: {
|
|
74
|
+
Authorization: `Basic ${Buffer.from(
|
|
75
|
+
`${options.clientId}:${options.clientSecret}`
|
|
76
|
+
).toString("base64")}`,
|
|
77
|
+
},
|
|
78
|
+
token: "https://api.faceit.com/auth/v1/oauth/token",
|
|
79
|
+
userinfo: "https://api.faceit.com/auth/v1/resources/userinfo",
|
|
80
|
+
profile(profile) {
|
|
81
|
+
return {
|
|
82
|
+
id: profile.guid,
|
|
83
|
+
name: profile.name,
|
|
84
|
+
email: profile.email,
|
|
85
|
+
image: profile.picture,
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
options,
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Figma</b> integration.</span>
|
|
4
|
+
* <a href="https://figma.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/figma.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/figma
|
|
10
|
+
*/
|
|
11
|
+
import { OAuth2Config, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @see https://www.figma.com/developers/api#users-types
|
|
15
|
+
*/
|
|
16
|
+
interface FigmaProfile {
|
|
17
|
+
id: string
|
|
18
|
+
email: string
|
|
19
|
+
handle: string
|
|
20
|
+
img_url: string
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* ### Setup
|
|
25
|
+
*
|
|
26
|
+
* #### Callback URL
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* https://example.com/api/auth/callback/figma
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* #### Configuration
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { Auth } from "@auth/core"
|
|
36
|
+
* import Figma from "@auth/core/providers/figma"
|
|
37
|
+
*
|
|
38
|
+
* const request = new Request(origin)
|
|
39
|
+
* const response = await Auth(request, {
|
|
40
|
+
* providers: [
|
|
41
|
+
* Figma({
|
|
42
|
+
* clientId: process.env.AUTH_FIGMA_ID,
|
|
43
|
+
* clientSecret: process.env.AUTH_FIGMA_SECRET
|
|
44
|
+
* })
|
|
45
|
+
* ],
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* ### Resources
|
|
50
|
+
*
|
|
51
|
+
* - [Using OAuth 2 on Figma](https://www.figma.com/developers/api#oauth2)
|
|
52
|
+
* - [Scopes](https://www.figma.com/developers/api#authentication-scopes)
|
|
53
|
+
*
|
|
54
|
+
* #### Notes
|
|
55
|
+
*
|
|
56
|
+
* By default, Auth.js assumes that the Figma provider is based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
57
|
+
*
|
|
58
|
+
* :::tip
|
|
59
|
+
*
|
|
60
|
+
* The Figma provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/figma.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
|
+
export default function Figma(
|
|
76
|
+
options: OAuthUserConfig<FigmaProfile>
|
|
77
|
+
): OAuth2Config<FigmaProfile> {
|
|
78
|
+
return {
|
|
79
|
+
id: "figma",
|
|
80
|
+
name: "Figma",
|
|
81
|
+
type: "oauth",
|
|
82
|
+
authorization: {
|
|
83
|
+
url: "https://www.figma.com/oauth",
|
|
84
|
+
params: {
|
|
85
|
+
scope: "files:read",
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
checks: ["state"],
|
|
89
|
+
token: "https://api.figma.com/v1/oauth/token",
|
|
90
|
+
userinfo: "https://api.figma.com/v1/me",
|
|
91
|
+
profile(profile) {
|
|
92
|
+
return {
|
|
93
|
+
name: profile.handle,
|
|
94
|
+
email: profile.email,
|
|
95
|
+
id: profile.id,
|
|
96
|
+
image: profile.img_url,
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
style: {
|
|
100
|
+
text: "#fff",
|
|
101
|
+
bg: "#ff7237",
|
|
102
|
+
},
|
|
103
|
+
options,
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { EmailConfig, EmailUserConfig } from "./index.js"
|
|
2
|
+
import { html, text } from "../lib/utils/email.js"
|
|
3
|
+
|
|
4
|
+
/** @todo Document this */
|
|
5
|
+
export default function ForwardEmail(config: EmailUserConfig): EmailConfig {
|
|
6
|
+
return {
|
|
7
|
+
id: "forwardemail",
|
|
8
|
+
type: "email",
|
|
9
|
+
name: "Forward Email",
|
|
10
|
+
from: "Auth.js <no-reply@authjs.dev>",
|
|
11
|
+
maxAge: 24 * 60 * 60,
|
|
12
|
+
async sendVerificationRequest(params) {
|
|
13
|
+
const { identifier: to, provider, url, theme } = params
|
|
14
|
+
const { host } = new URL(url)
|
|
15
|
+
const res = await fetch("https://api.forwardemail.net/v1/emails", {
|
|
16
|
+
method: "POST",
|
|
17
|
+
headers: {
|
|
18
|
+
Authorization: `Basic ${btoa(provider.apiKey + ":")}`,
|
|
19
|
+
"Content-Type": "application/json",
|
|
20
|
+
},
|
|
21
|
+
body: JSON.stringify({
|
|
22
|
+
from: provider.from,
|
|
23
|
+
to,
|
|
24
|
+
subject: `Sign in to ${host}`,
|
|
25
|
+
html: html({ url, host, theme }),
|
|
26
|
+
text: text({ url, host }),
|
|
27
|
+
}),
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
if (!res.ok)
|
|
31
|
+
throw new Error(
|
|
32
|
+
"Forward Email error: " + JSON.stringify(await res.json())
|
|
33
|
+
)
|
|
34
|
+
},
|
|
35
|
+
options: config,
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>FourSquare</b> integration.</span>
|
|
4
|
+
* <a href="https://foursquare.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/foursquare.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/foursquare
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Add FourSquare login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/foursquare
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import FourSquare from "@auth/core/providers/foursquare"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* FourSquare({
|
|
32
|
+
* clientId: FOURSQUARE_CLIENT_ID,
|
|
33
|
+
* clientSecret: FOURSQUARE_CLIENT_SECRET,
|
|
34
|
+
* }),
|
|
35
|
+
* ],
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### Resources
|
|
40
|
+
*
|
|
41
|
+
* - [FourSquare OAuth documentation](https://docs.foursquare.com/developer/reference/authentication)
|
|
42
|
+
*
|
|
43
|
+
* ### Notes
|
|
44
|
+
*
|
|
45
|
+
* By default, Auth.js assumes that the FourSquare provider is
|
|
46
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
47
|
+
*
|
|
48
|
+
* :::warning
|
|
49
|
+
* Foursquare requires an additional apiVersion parameter in YYYYMMDD format, which essentially states "I'm prepared for API changes up to this date".
|
|
50
|
+
* :::
|
|
51
|
+
*
|
|
52
|
+
* :::tip
|
|
53
|
+
*
|
|
54
|
+
* The FourSquare provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/foursquare.ts).
|
|
55
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
56
|
+
*
|
|
57
|
+
* :::
|
|
58
|
+
*
|
|
59
|
+
* :::info **Disclaimer**
|
|
60
|
+
*
|
|
61
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
62
|
+
*
|
|
63
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
64
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
65
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
66
|
+
*
|
|
67
|
+
* :::
|
|
68
|
+
*/
|
|
69
|
+
export default function Foursquare(
|
|
70
|
+
options: OAuthUserConfig<Record<string, any>> & { apiVersion?: string }
|
|
71
|
+
): OAuthConfig<Record<string, any>> {
|
|
72
|
+
const { apiVersion = "20230131" } = options
|
|
73
|
+
return {
|
|
74
|
+
id: "foursquare",
|
|
75
|
+
name: "Foursquare",
|
|
76
|
+
type: "oauth",
|
|
77
|
+
authorization: "https://foursquare.com/oauth2/authenticate",
|
|
78
|
+
token: "https://foursquare.com/oauth2/access_token",
|
|
79
|
+
userinfo: {
|
|
80
|
+
url: `https://api.foursquare.com/v2/users/self?v=${apiVersion}`,
|
|
81
|
+
async request({ tokens, provider }) {
|
|
82
|
+
if (!provider.userinfo) return
|
|
83
|
+
|
|
84
|
+
const url = new URL(provider.userinfo.url)
|
|
85
|
+
url.searchParams.append("oauth_token", tokens.access_token!)
|
|
86
|
+
return fetch(url).then((res) => res.json())
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
profile({ response: { user: profile } }) {
|
|
90
|
+
return {
|
|
91
|
+
id: profile.id,
|
|
92
|
+
name: `${profile.firstName} ${profile.lastName}`,
|
|
93
|
+
email: profile.contact.email,
|
|
94
|
+
image: profile.photo
|
|
95
|
+
? `${profile.photo.prefix}original${profile.photo.suffix}`
|
|
96
|
+
: null,
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
style: {
|
|
100
|
+
bg: "#000",
|
|
101
|
+
text: "#fff",
|
|
102
|
+
},
|
|
103
|
+
options,
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>FreshBooks</b> integration.</span>
|
|
4
|
+
* <a href="https://freshbooks.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/freshbooks.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/freshbooks
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Add FreshBooks login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/freshbooks
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import FreshBooks from "@auth/core/providers/freshbooks"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* FreshBooks({
|
|
32
|
+
* clientId: FRESHBOOKS_CLIENT_ID,
|
|
33
|
+
* clientSecret: FRESHBOOKS_CLIENT_SECRET,
|
|
34
|
+
* }),
|
|
35
|
+
* ],
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### Resources
|
|
40
|
+
*
|
|
41
|
+
* - [FreshBooks OAuth documentation](https://www.freshbooks.com/api/authenticating-with-oauth-2-0-on-the-new-freshbooks-api
|
|
42
|
+
)
|
|
43
|
+
*
|
|
44
|
+
* ### Notes
|
|
45
|
+
*
|
|
46
|
+
* By default, Auth.js assumes that the FreshBooks provider is
|
|
47
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
48
|
+
*
|
|
49
|
+
* :::tip
|
|
50
|
+
*
|
|
51
|
+
* The FreshBooks provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/freshbooks.ts).
|
|
52
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
53
|
+
*
|
|
54
|
+
* :::
|
|
55
|
+
*
|
|
56
|
+
* :::info **Disclaimer**
|
|
57
|
+
*
|
|
58
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
59
|
+
*
|
|
60
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
61
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
62
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
63
|
+
*
|
|
64
|
+
* :::
|
|
65
|
+
*/
|
|
66
|
+
export default function Freshbooks(
|
|
67
|
+
options: OAuthUserConfig<Record<string, any>>
|
|
68
|
+
): OAuthConfig<Record<string, any>> {
|
|
69
|
+
return {
|
|
70
|
+
id: "freshbooks",
|
|
71
|
+
name: "Freshbooks",
|
|
72
|
+
type: "oauth",
|
|
73
|
+
authorization: "https://auth.freshbooks.com/service/auth/oauth/authorize",
|
|
74
|
+
token: "https://api.freshbooks.com/auth/oauth/token",
|
|
75
|
+
userinfo: "https://api.freshbooks.com/auth/api/v1/users/me",
|
|
76
|
+
async profile(profile) {
|
|
77
|
+
return {
|
|
78
|
+
id: profile.response.id,
|
|
79
|
+
name: `${profile.response.first_name} ${profile.response.last_name}`,
|
|
80
|
+
email: profile.response.email,
|
|
81
|
+
image: null,
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
style: {
|
|
85
|
+
bg: "#0075dd",
|
|
86
|
+
text: "#fff",
|
|
87
|
+
},
|
|
88
|
+
options,
|
|
89
|
+
}
|
|
90
|
+
}
|