@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,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>SimpleLogin</b> integration.</span>
|
|
4
|
+
* <a href="https://simplelogin.io">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/simplelogin.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/simplelogin
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface SimpleLoginProfile {
|
|
14
|
+
id: number
|
|
15
|
+
sub: string
|
|
16
|
+
email: string
|
|
17
|
+
email_verified: boolean
|
|
18
|
+
name: string
|
|
19
|
+
avatar_url: string | undefined
|
|
20
|
+
client: string
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Add SimpleLogin login to your page.
|
|
25
|
+
*
|
|
26
|
+
* ### Setup
|
|
27
|
+
*
|
|
28
|
+
* #### Callback URL
|
|
29
|
+
* ```
|
|
30
|
+
* https://example.com/api/auth/callback/simplelogin
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* #### Configuration
|
|
34
|
+
*```ts
|
|
35
|
+
* import { Auth } from "@auth/core"
|
|
36
|
+
* import SimpleLogin from "@auth/core/providers/simplelogin"
|
|
37
|
+
*
|
|
38
|
+
* const request = new Request(origin)
|
|
39
|
+
* const response = await Auth(request, {
|
|
40
|
+
* providers: [
|
|
41
|
+
* SimpleLogin({
|
|
42
|
+
* clientId: SIMPLELOGIN_CLIENT_ID,
|
|
43
|
+
* clientSecret: SIMPLELOGIN_CLIENT_SECRET,
|
|
44
|
+
* }),
|
|
45
|
+
* ],
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* ### Resources
|
|
50
|
+
*
|
|
51
|
+
* - [Sign in with SimpleLogin](https://simplelogin.io/developer/)
|
|
52
|
+
* - [SimpleLogin OAuth documentation](https://simplelogin.io/docs/siwsl/intro/)
|
|
53
|
+
* - [SimpleLogin OAuth Configuration](https://app.simplelogin.io/developer)
|
|
54
|
+
*
|
|
55
|
+
* ### Notes
|
|
56
|
+
*
|
|
57
|
+
* By default, Auth.js assumes that the SimpleLogin provider is
|
|
58
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
59
|
+
*
|
|
60
|
+
* The "Authorized redirect URIs" used must include your full domain and end in the callback path. By default, SimpleLogin whitelists all `http[s]://localhost:*` address to facilitate local development. For example;
|
|
61
|
+
*
|
|
62
|
+
* - For production: `https://{YOUR_DOMAIN}/api/auth/callback/simplelogin`
|
|
63
|
+
* - For development: By default **localhost** is whitelisted.
|
|
64
|
+
*
|
|
65
|
+
* :::warning
|
|
66
|
+
*
|
|
67
|
+
* **Authorized Redirect URIs** must be **HTTPS** for security reason (except for `localhost`).
|
|
68
|
+
*
|
|
69
|
+
* :::
|
|
70
|
+
*
|
|
71
|
+
* :::tip
|
|
72
|
+
*
|
|
73
|
+
* The SimpleLogin provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/simplelogin.ts).
|
|
74
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
75
|
+
*
|
|
76
|
+
* :::
|
|
77
|
+
*
|
|
78
|
+
* :::info **Disclaimer**
|
|
79
|
+
*
|
|
80
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
81
|
+
*
|
|
82
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
83
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
84
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
85
|
+
*
|
|
86
|
+
* :::
|
|
87
|
+
*/
|
|
88
|
+
export default function SimpleLogin<P extends SimpleLoginProfile>(
|
|
89
|
+
options: OAuthUserConfig<P>
|
|
90
|
+
): OAuthConfig<P> {
|
|
91
|
+
return {
|
|
92
|
+
id: "simplelogin",
|
|
93
|
+
name: "SimpleLogin",
|
|
94
|
+
type: "oidc",
|
|
95
|
+
issuer: "https://app.simplelogin.io",
|
|
96
|
+
profile(profile) {
|
|
97
|
+
return {
|
|
98
|
+
id: profile.sub,
|
|
99
|
+
name: profile.name,
|
|
100
|
+
email: profile.email,
|
|
101
|
+
image: profile.avatar_url,
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
style: { brandColor: "#e3156a" },
|
|
105
|
+
options,
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Slack</b> integration.</span>
|
|
4
|
+
* <a href="https://www.slack.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/slack.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/slack
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface SlackProfile extends Record<string, any> {
|
|
14
|
+
ok: boolean
|
|
15
|
+
sub: string
|
|
16
|
+
"https://slack.com/user_id": string
|
|
17
|
+
"https://slack.com/team_id": string
|
|
18
|
+
email: string
|
|
19
|
+
email_verified: boolean
|
|
20
|
+
date_email_verified: number
|
|
21
|
+
name: string
|
|
22
|
+
picture: string
|
|
23
|
+
given_name: string
|
|
24
|
+
family_name: string
|
|
25
|
+
locale: string
|
|
26
|
+
"https://slack.com/team_name": string
|
|
27
|
+
"https://slack.com/team_domain": string
|
|
28
|
+
"https://slack.com/user_image_24": string
|
|
29
|
+
"https://slack.com/user_image_32": string
|
|
30
|
+
"https://slack.com/user_image_48": string
|
|
31
|
+
"https://slack.com/user_image_72": string
|
|
32
|
+
"https://slack.com/user_image_192": string
|
|
33
|
+
"https://slack.com/user_image_512": string
|
|
34
|
+
"https://slack.com/user_image_1024": string
|
|
35
|
+
"https://slack.com/team_image_34": string
|
|
36
|
+
"https://slack.com/team_image_44": string
|
|
37
|
+
"https://slack.com/team_image_68": string
|
|
38
|
+
"https://slack.com/team_image_88": string
|
|
39
|
+
"https://slack.com/team_image_102": string
|
|
40
|
+
"https://slack.com/team_image_132": string
|
|
41
|
+
"https://slack.com/team_image_230": string
|
|
42
|
+
"https://slack.com/team_image_default": boolean
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Add Slack login to your page.
|
|
47
|
+
*
|
|
48
|
+
* ### Setup
|
|
49
|
+
*
|
|
50
|
+
* #### Callback URL
|
|
51
|
+
* ```
|
|
52
|
+
* https://example.com/api/auth/callback/slack
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* #### Configuration
|
|
56
|
+
*```ts
|
|
57
|
+
* import { Auth } from "@auth/core"
|
|
58
|
+
* import Slack from "@auth/core/providers/slack"
|
|
59
|
+
*
|
|
60
|
+
* const request = new Request(origin)
|
|
61
|
+
* const response = await Auth(request, {
|
|
62
|
+
* providers: [
|
|
63
|
+
* Slack({ clientId: SLACK_CLIENT_ID, clientSecret: SLACK_CLIENT_SECRET }),
|
|
64
|
+
* ],
|
|
65
|
+
* })
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* ### Resources
|
|
69
|
+
*
|
|
70
|
+
* - [Slack Authentication documentation](https://api.slack.com/authentication)
|
|
71
|
+
* - [Sign-in with Slack](https://api.slack.com/docs/sign-in-with-slack)
|
|
72
|
+
* - [Slack app console](https://api.slack.com/apps)
|
|
73
|
+
*
|
|
74
|
+
* ### Notes
|
|
75
|
+
*
|
|
76
|
+
* By default, Auth.js assumes that the Slack provider is
|
|
77
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
78
|
+
*
|
|
79
|
+
* :::danger
|
|
80
|
+
*
|
|
81
|
+
* Slack requires that the redirect URL of your app uses https, even for local development.
|
|
82
|
+
* An easy workaround for this is using a service like [ngrok](https://ngrok.com/) that creates a secure tunnel to your app, using https. Remember to set the url as `NEXTAUTH_URL` as well.
|
|
83
|
+
*
|
|
84
|
+
* :::
|
|
85
|
+
*
|
|
86
|
+
* :::tip
|
|
87
|
+
*
|
|
88
|
+
* The Slack provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/slack.ts).
|
|
89
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
90
|
+
*
|
|
91
|
+
* :::
|
|
92
|
+
*
|
|
93
|
+
* :::info **Disclaimer**
|
|
94
|
+
*
|
|
95
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
96
|
+
*
|
|
97
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
98
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
99
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
100
|
+
*
|
|
101
|
+
* :::
|
|
102
|
+
*/
|
|
103
|
+
export default function Slack<P extends SlackProfile>(
|
|
104
|
+
options: OAuthUserConfig<P>
|
|
105
|
+
): OAuthConfig<P> {
|
|
106
|
+
return {
|
|
107
|
+
id: "slack",
|
|
108
|
+
name: "Slack",
|
|
109
|
+
type: "oidc",
|
|
110
|
+
issuer: "https://slack.com",
|
|
111
|
+
checks: ["nonce"],
|
|
112
|
+
style: { brandColor: "#611f69" },
|
|
113
|
+
options,
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Spotify</b> integration.</span>
|
|
4
|
+
* <a href="https://www.spotify.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/spotify.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/spotify
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface SpotifyImage {
|
|
14
|
+
url: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface SpotifyProfile extends Record<string, any> {
|
|
18
|
+
id: string
|
|
19
|
+
display_name: string
|
|
20
|
+
email: string
|
|
21
|
+
images: SpotifyImage[]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Add Spotify login to your page.
|
|
26
|
+
*
|
|
27
|
+
* ### Setup
|
|
28
|
+
*
|
|
29
|
+
* #### Callback URL
|
|
30
|
+
* ```
|
|
31
|
+
* https://example.com/api/auth/callback/spotify
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* #### Configuration
|
|
35
|
+
*```ts
|
|
36
|
+
* import { Auth } from "@auth/core"
|
|
37
|
+
* import Spotify from "@auth/core/providers/spotify"
|
|
38
|
+
*
|
|
39
|
+
* const request = new Request(origin)
|
|
40
|
+
* const response = await Auth(request, {
|
|
41
|
+
* providers: [
|
|
42
|
+
* Spotify({
|
|
43
|
+
* clientId: SPOTIFY_CLIENT_ID,
|
|
44
|
+
* clientSecret: SPOTIFY_CLIENT_SECRET,
|
|
45
|
+
* }),
|
|
46
|
+
* ],
|
|
47
|
+
* })
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* ### Resources
|
|
51
|
+
*
|
|
52
|
+
* - [Spotify OAuth documentation](https://developer.spotify.com/documentation/general/guides/authorization-guide)
|
|
53
|
+
* - [Spotify app console](https://developer.spotify.com/dashboard/applications)
|
|
54
|
+
*
|
|
55
|
+
* ### Notes
|
|
56
|
+
*
|
|
57
|
+
* By default, Auth.js assumes that the Spotify provider is
|
|
58
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
59
|
+
*
|
|
60
|
+
* :::tip
|
|
61
|
+
*
|
|
62
|
+
* The Spotify provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/spotify.ts).
|
|
63
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
64
|
+
*
|
|
65
|
+
* :::
|
|
66
|
+
*
|
|
67
|
+
* :::info **Disclaimer**
|
|
68
|
+
*
|
|
69
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
70
|
+
*
|
|
71
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
72
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
73
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
74
|
+
*
|
|
75
|
+
* :::
|
|
76
|
+
*/
|
|
77
|
+
export default function Spotify<P extends SpotifyProfile>(
|
|
78
|
+
options: OAuthUserConfig<P>
|
|
79
|
+
): OAuthConfig<P> {
|
|
80
|
+
return {
|
|
81
|
+
id: "spotify",
|
|
82
|
+
name: "Spotify",
|
|
83
|
+
type: "oauth",
|
|
84
|
+
authorization:
|
|
85
|
+
"https://accounts.spotify.com/authorize?scope=user-read-email",
|
|
86
|
+
token: "https://accounts.spotify.com/api/token",
|
|
87
|
+
userinfo: "https://api.spotify.com/v1/me",
|
|
88
|
+
profile(profile) {
|
|
89
|
+
return {
|
|
90
|
+
id: profile.id,
|
|
91
|
+
name: profile.display_name,
|
|
92
|
+
email: profile.email,
|
|
93
|
+
image: profile.images?.[0]?.url,
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
style: { brandColor: "#1db954" },
|
|
97
|
+
options,
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -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>Strava</b> integration.</span>
|
|
4
|
+
* <a href="https://www.strava.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/strava.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/strava
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface StravaProfile extends Record<string, any> {
|
|
14
|
+
id: string // this is really a number
|
|
15
|
+
firstname: string
|
|
16
|
+
lastname: string
|
|
17
|
+
profile: string
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Add Strava login to your page.
|
|
22
|
+
*
|
|
23
|
+
* ### Setup
|
|
24
|
+
*
|
|
25
|
+
* #### Callback URL
|
|
26
|
+
* ```
|
|
27
|
+
* https://example.com/api/auth/callback/strava
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* #### Configuration
|
|
31
|
+
*```ts
|
|
32
|
+
* import { Auth } from "@auth/core"
|
|
33
|
+
* import Strava from "@auth/core/providers/strava"
|
|
34
|
+
*
|
|
35
|
+
* const request = new Request(origin)
|
|
36
|
+
* const response = await Auth(request, {
|
|
37
|
+
* providers: [
|
|
38
|
+
* Strava({ clientId: STRAVA_CLIENT_ID, clientSecret: STRAVA_CLIENT_SECRET }),
|
|
39
|
+
* ],
|
|
40
|
+
* })
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* ### Resources
|
|
44
|
+
*
|
|
45
|
+
* - [Strava API documentation](http://developers.strava.com/docs/reference/)
|
|
46
|
+
*
|
|
47
|
+
* ### Notes
|
|
48
|
+
*
|
|
49
|
+
* By default, Auth.js assumes that the Strava provider is
|
|
50
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
51
|
+
*
|
|
52
|
+
* :::tip
|
|
53
|
+
*
|
|
54
|
+
* The Strava provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/strava.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 Strava<P extends StravaProfile>(
|
|
70
|
+
options: OAuthUserConfig<P>
|
|
71
|
+
): OAuthConfig<P> {
|
|
72
|
+
return {
|
|
73
|
+
id: "strava",
|
|
74
|
+
name: "Strava",
|
|
75
|
+
type: "oauth",
|
|
76
|
+
authorization: {
|
|
77
|
+
url: "https://www.strava.com/api/v3/oauth/authorize",
|
|
78
|
+
params: {
|
|
79
|
+
scope: "read",
|
|
80
|
+
approval_prompt: "auto",
|
|
81
|
+
response_type: "code",
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
token: {
|
|
85
|
+
url: "https://www.strava.com/api/v3/oauth/token",
|
|
86
|
+
},
|
|
87
|
+
userinfo: "https://www.strava.com/api/v3/athlete",
|
|
88
|
+
client: {
|
|
89
|
+
token_endpoint_auth_method: "client_secret_post",
|
|
90
|
+
},
|
|
91
|
+
profile(profile) {
|
|
92
|
+
return {
|
|
93
|
+
id: profile.id,
|
|
94
|
+
name: `${profile.firstname} ${profile.lastname}`,
|
|
95
|
+
email: null,
|
|
96
|
+
image: profile.profile,
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
options,
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Threads</b> integration.</span>
|
|
4
|
+
* <a href="https://www.threads.net/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/threads.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/threads
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* [User](https://developers.facebook.com/docs/threads/reference/user)
|
|
15
|
+
*/
|
|
16
|
+
export interface ThreadsProfile {
|
|
17
|
+
data: {
|
|
18
|
+
/**
|
|
19
|
+
* Unique identifier of this user. This is returned as a string in order to avoid complications with languages and tools
|
|
20
|
+
* that cannot handle large integers.
|
|
21
|
+
*/
|
|
22
|
+
id: string
|
|
23
|
+
/**
|
|
24
|
+
* The Threads handle (username) of this user.
|
|
25
|
+
*
|
|
26
|
+
* To return this field, add `fields=username` in the authorization request's query parameter.
|
|
27
|
+
*/
|
|
28
|
+
username?: string
|
|
29
|
+
/**
|
|
30
|
+
* The URL to the profile image for this user, as shown on the user's profile.
|
|
31
|
+
*
|
|
32
|
+
* To return this field, add `fields=threads_profile_picture_url` in the authorization request's query parameter.
|
|
33
|
+
*/
|
|
34
|
+
threads_profile_picture_url?: string
|
|
35
|
+
/**
|
|
36
|
+
* The text of this user's profile biography (also known as bio), if the user provided one.
|
|
37
|
+
*
|
|
38
|
+
* To return this field, add `fields=threads_biography` in the authorization request's query parameter.
|
|
39
|
+
*/
|
|
40
|
+
threads_biography?: string
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Add Threads login to your page.
|
|
46
|
+
*
|
|
47
|
+
* ### Setup
|
|
48
|
+
*
|
|
49
|
+
* #### Callback URL
|
|
50
|
+
* ```
|
|
51
|
+
* https://example.com/api/auth/callback/threads
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* #### Configuration
|
|
55
|
+
*```ts
|
|
56
|
+
* import { Auth } from "@auth/core"
|
|
57
|
+
* import Threads from "@auth/core/providers/threads"
|
|
58
|
+
*
|
|
59
|
+
* const request = new Request(origin)
|
|
60
|
+
* const response = await Auth(request, {
|
|
61
|
+
* providers: [
|
|
62
|
+
* Threads({
|
|
63
|
+
* clientId: THREADS_CLIENT_ID,
|
|
64
|
+
* clientSecret: THREADS_CLIENT_SECRET,
|
|
65
|
+
* }),
|
|
66
|
+
* ],
|
|
67
|
+
* })
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* ### Resources
|
|
71
|
+
*
|
|
72
|
+
* - [Threads OAuth documentation](https://developers.facebook.com/docs/threads)
|
|
73
|
+
* - [Threads OAuth apps](https://developers.facebook.com/apps/)
|
|
74
|
+
*
|
|
75
|
+
* ### Notes
|
|
76
|
+
*
|
|
77
|
+
* :::warning
|
|
78
|
+
*
|
|
79
|
+
* Email address is not returned by the Threads API.
|
|
80
|
+
*
|
|
81
|
+
* :::
|
|
82
|
+
*
|
|
83
|
+
* :::tip
|
|
84
|
+
*
|
|
85
|
+
* Threads required callback URL to be configured in your Facebook app and Facebook required you to use **https** even for localhost! In order to do that, you either need to [add an SSL to your localhost](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/) or use a proxy such as [ngrok](https://ngrok.com/docs).
|
|
86
|
+
*
|
|
87
|
+
* :::
|
|
88
|
+
*
|
|
89
|
+
* By default, Auth.js assumes that the Threads provider is
|
|
90
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
91
|
+
*
|
|
92
|
+
* :::tip
|
|
93
|
+
*
|
|
94
|
+
* The Threads provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/threads.ts).
|
|
95
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
96
|
+
*
|
|
97
|
+
* :::
|
|
98
|
+
*
|
|
99
|
+
* :::info **Disclaimer**
|
|
100
|
+
*
|
|
101
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
102
|
+
*
|
|
103
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
104
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
105
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
106
|
+
*
|
|
107
|
+
* :::
|
|
108
|
+
*/
|
|
109
|
+
export default function Threads(
|
|
110
|
+
config: OAuthUserConfig<ThreadsProfile>
|
|
111
|
+
): OAuthConfig<ThreadsProfile> {
|
|
112
|
+
return {
|
|
113
|
+
id: "threads",
|
|
114
|
+
name: "Threads",
|
|
115
|
+
type: "oauth",
|
|
116
|
+
checks: ["state"],
|
|
117
|
+
authorization: "https://threads.net/oauth/authorize?scope=threads_basic",
|
|
118
|
+
token: "https://graph.threads.net/oauth/access_token",
|
|
119
|
+
userinfo:
|
|
120
|
+
"https://graph.threads.net/v1.0/me?fields=id,username,threads_profile_picture_url",
|
|
121
|
+
client: {
|
|
122
|
+
token_endpoint_auth_method: "client_secret_post",
|
|
123
|
+
},
|
|
124
|
+
profile({ data }) {
|
|
125
|
+
return {
|
|
126
|
+
id: data.id,
|
|
127
|
+
name: data.username || null,
|
|
128
|
+
email: null,
|
|
129
|
+
image: data.threads_profile_picture_url || null,
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
style: { bg: "#000", text: "#fff" },
|
|
133
|
+
options: config,
|
|
134
|
+
}
|
|
135
|
+
}
|