@mulverse/mulguard-core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/adapters.d.ts +522 -0
- package/adapters.d.ts.map +1 -0
- package/adapters.js +170 -0
- package/errors.d.ts +429 -0
- package/errors.d.ts.map +1 -0
- package/errors.js +473 -0
- package/index.d.ts +547 -0
- package/index.d.ts.map +1 -0
- package/index.js +142 -0
- package/jwt.d.ts +132 -0
- package/jwt.d.ts.map +1 -0
- package/jwt.js +123 -0
- package/lib/actions/callback/handle-login.d.ts +35 -0
- package/lib/actions/callback/handle-login.d.ts.map +1 -0
- package/lib/actions/callback/handle-login.js +275 -0
- package/lib/actions/callback/index.d.ts +5 -0
- package/lib/actions/callback/index.d.ts.map +1 -0
- package/lib/actions/callback/index.js +409 -0
- package/lib/actions/callback/oauth/callback.d.ts +36 -0
- package/lib/actions/callback/oauth/callback.d.ts.map +1 -0
- package/lib/actions/callback/oauth/callback.js +248 -0
- package/lib/actions/callback/oauth/checks.d.ts +70 -0
- package/lib/actions/callback/oauth/checks.d.ts.map +1 -0
- package/lib/actions/callback/oauth/checks.js +188 -0
- package/lib/actions/callback/oauth/csrf-token.d.ts +33 -0
- package/lib/actions/callback/oauth/csrf-token.d.ts.map +1 -0
- package/lib/actions/callback/oauth/csrf-token.js +39 -0
- package/lib/actions/index.d.ts +6 -0
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +5 -0
- package/lib/actions/session.d.ts +5 -0
- package/lib/actions/session.d.ts.map +1 -0
- package/lib/actions/session.js +127 -0
- package/lib/actions/signin/authorization-url.d.ts +12 -0
- package/lib/actions/signin/authorization-url.d.ts.map +1 -0
- package/lib/actions/signin/authorization-url.js +94 -0
- package/lib/actions/signin/index.d.ts +4 -0
- package/lib/actions/signin/index.d.ts.map +1 -0
- package/lib/actions/signin/index.js +22 -0
- package/lib/actions/signin/send-token.d.ts +10 -0
- package/lib/actions/signin/send-token.d.ts.map +1 -0
- package/lib/actions/signin/send-token.js +98 -0
- package/lib/actions/signout.d.ts +11 -0
- package/lib/actions/signout.d.ts.map +1 -0
- package/lib/actions/signout.js +30 -0
- package/lib/actions/webauthn-options.d.ts +8 -0
- package/lib/actions/webauthn-options.d.ts.map +1 -0
- package/lib/actions/webauthn-options.js +60 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +70 -0
- package/lib/init.d.ts +25 -0
- package/lib/init.d.ts.map +1 -0
- package/lib/init.js +172 -0
- package/lib/pages/error.d.ts +17 -0
- package/lib/pages/error.d.ts.map +1 -0
- package/lib/pages/error.js +40 -0
- package/lib/pages/index.d.ts +42 -0
- package/lib/pages/index.d.ts.map +1 -0
- package/lib/pages/index.js +136 -0
- package/lib/pages/signin.d.ts +10 -0
- package/lib/pages/signin.d.ts.map +1 -0
- package/lib/pages/signin.js +75 -0
- package/lib/pages/signout.d.ts +8 -0
- package/lib/pages/signout.d.ts.map +1 -0
- package/lib/pages/signout.js +17 -0
- package/lib/pages/styles.d.ts +3 -0
- package/lib/pages/styles.d.ts.map +1 -0
- package/lib/pages/styles.js +381 -0
- package/lib/pages/verify-request.d.ts +8 -0
- package/lib/pages/verify-request.d.ts.map +1 -0
- package/lib/pages/verify-request.js +11 -0
- package/lib/symbols.d.ts +50 -0
- package/lib/symbols.d.ts.map +1 -0
- package/lib/symbols.js +57 -0
- package/lib/utils/actions.d.ts +3 -0
- package/lib/utils/actions.d.ts.map +1 -0
- package/lib/utils/actions.js +14 -0
- package/lib/utils/assert.d.ts +14 -0
- package/lib/utils/assert.d.ts.map +1 -0
- package/lib/utils/assert.js +168 -0
- package/lib/utils/callback-url.d.ts +17 -0
- package/lib/utils/callback-url.d.ts.map +1 -0
- package/lib/utils/callback-url.js +27 -0
- package/lib/utils/cookie.d.ts +111 -0
- package/lib/utils/cookie.d.ts.map +1 -0
- package/lib/utils/cookie.js +205 -0
- package/lib/utils/date.d.ts +7 -0
- package/lib/utils/date.d.ts.map +1 -0
- package/lib/utils/date.js +8 -0
- package/lib/utils/email.d.ts +20 -0
- package/lib/utils/email.d.ts.map +1 -0
- package/lib/utils/email.js +57 -0
- package/lib/utils/env.d.ts +9 -0
- package/lib/utils/env.d.ts.map +1 -0
- package/lib/utils/env.js +96 -0
- package/lib/utils/logger.d.ts +18 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +50 -0
- package/lib/utils/merge.d.ts +3 -0
- package/lib/utils/merge.d.ts.map +1 -0
- package/lib/utils/merge.js +23 -0
- package/lib/utils/providers.d.ts +19 -0
- package/lib/utils/providers.d.ts.map +1 -0
- package/lib/utils/providers.js +149 -0
- package/lib/utils/session.d.ts +7 -0
- package/lib/utils/session.d.ts.map +1 -0
- package/lib/utils/session.js +29 -0
- package/lib/utils/web.d.ts +10 -0
- package/lib/utils/web.d.ts.map +1 -0
- package/lib/utils/web.js +109 -0
- package/lib/utils/webauthn-client.d.ts +30 -0
- package/lib/utils/webauthn-client.d.ts.map +1 -0
- package/lib/utils/webauthn-client.js +197 -0
- package/lib/utils/webauthn-utils.d.ts +81 -0
- package/lib/utils/webauthn-utils.d.ts.map +1 -0
- package/lib/utils/webauthn-utils.js +343 -0
- package/lib/vendored/cookie.d.ts +120 -0
- package/lib/vendored/cookie.d.ts.map +1 -0
- package/lib/vendored/cookie.js +237 -0
- package/package.json +118 -0
- package/providers/42-school.d.ts +240 -0
- package/providers/42-school.d.ts.map +1 -0
- package/providers/42-school.js +78 -0
- package/providers/apple.d.ts +149 -0
- package/providers/apple.d.ts.map +1 -0
- package/providers/apple.js +104 -0
- package/providers/asgardeo.d.ts +102 -0
- package/providers/asgardeo.d.ts.map +1 -0
- package/providers/asgardeo.js +93 -0
- package/providers/atlassian.d.ts +94 -0
- package/providers/atlassian.d.ts.map +1 -0
- package/providers/atlassian.js +84 -0
- package/providers/auth0.d.ts +116 -0
- package/providers/auth0.d.ts.map +1 -0
- package/providers/auth0.js +49 -0
- package/providers/authentik.d.ts +90 -0
- package/providers/authentik.d.ts.map +1 -0
- package/providers/authentik.js +65 -0
- package/providers/azure-ad-b2c.d.ts +104 -0
- package/providers/azure-ad-b2c.d.ts.map +1 -0
- package/providers/azure-ad-b2c.js +100 -0
- package/providers/azure-ad.d.ts +19 -0
- package/providers/azure-ad.d.ts.map +1 -0
- package/providers/azure-ad.js +23 -0
- package/providers/azure-devops.d.ts +128 -0
- package/providers/azure-devops.d.ts.map +1 -0
- package/providers/azure-devops.js +158 -0
- package/providers/bankid-no.d.ts +134 -0
- package/providers/bankid-no.d.ts.map +1 -0
- package/providers/bankid-no.js +65 -0
- package/providers/battlenet.d.ts +85 -0
- package/providers/battlenet.d.ts.map +1 -0
- package/providers/battlenet.js +81 -0
- package/providers/beyondidentity.d.ts +77 -0
- package/providers/beyondidentity.d.ts.map +1 -0
- package/providers/beyondidentity.js +84 -0
- package/providers/bitbucket.d.ts +89 -0
- package/providers/bitbucket.d.ts.map +1 -0
- package/providers/bitbucket.js +92 -0
- package/providers/box.d.ts +63 -0
- package/providers/box.d.ts.map +1 -0
- package/providers/box.js +73 -0
- package/providers/boxyhq-saml.d.ts +121 -0
- package/providers/boxyhq-saml.d.ts.map +1 -0
- package/providers/boxyhq-saml.js +127 -0
- package/providers/bungie.d.ts +167 -0
- package/providers/bungie.d.ts.map +1 -0
- package/providers/bungie.js +174 -0
- package/providers/click-up.d.ts +75 -0
- package/providers/click-up.d.ts.map +1 -0
- package/providers/click-up.js +89 -0
- package/providers/cognito.d.ts +81 -0
- package/providers/cognito.d.ts.map +1 -0
- package/providers/cognito.js +73 -0
- package/providers/coinbase.d.ts +69 -0
- package/providers/coinbase.d.ts.map +1 -0
- package/providers/coinbase.js +78 -0
- package/providers/concept2.d.ts +81 -0
- package/providers/concept2.d.ts.map +1 -0
- package/providers/concept2.js +86 -0
- package/providers/credentials.d.ts +132 -0
- package/providers/credentials.d.ts.map +1 -0
- package/providers/credentials.js +74 -0
- package/providers/descope.d.ts +91 -0
- package/providers/descope.d.ts.map +1 -0
- package/providers/descope.js +78 -0
- package/providers/discord.d.ts +139 -0
- package/providers/discord.d.ts.map +1 -0
- package/providers/discord.js +86 -0
- package/providers/dribbble.d.ts +88 -0
- package/providers/dribbble.d.ts.map +1 -0
- package/providers/dribbble.js +85 -0
- package/providers/dropbox.d.ts +65 -0
- package/providers/dropbox.d.ts.map +1 -0
- package/providers/dropbox.js +88 -0
- package/providers/duende-identity-server6.d.ts +91 -0
- package/providers/duende-identity-server6.d.ts.map +1 -0
- package/providers/duende-identity-server6.js +80 -0
- package/providers/email.d.ts +41 -0
- package/providers/email.d.ts.map +1 -0
- package/providers/email.js +18 -0
- package/providers/eventbrite.d.ts +78 -0
- package/providers/eventbrite.d.ts.map +1 -0
- package/providers/eventbrite.js +88 -0
- package/providers/eveonline.d.ts +94 -0
- package/providers/eveonline.d.ts.map +1 -0
- package/providers/eveonline.js +92 -0
- package/providers/facebook.d.ts +84 -0
- package/providers/facebook.d.ts.map +1 -0
- package/providers/facebook.js +93 -0
- package/providers/faceit.d.ts +64 -0
- package/providers/faceit.d.ts.map +1 -0
- package/providers/faceit.js +74 -0
- package/providers/figma.d.ts +75 -0
- package/providers/figma.d.ts.map +1 -0
- package/providers/figma.js +81 -0
- package/providers/forwardemail.d.ts +4 -0
- package/providers/forwardemail.d.ts.map +1 -0
- package/providers/forwardemail.js +32 -0
- package/providers/foursquare.d.ts +71 -0
- package/providers/foursquare.d.ts.map +1 -0
- package/providers/foursquare.js +91 -0
- package/providers/freshbooks.d.ts +66 -0
- package/providers/freshbooks.d.ts.map +1 -0
- package/providers/freshbooks.js +76 -0
- package/providers/frontegg.d.ts +95 -0
- package/providers/frontegg.d.ts.map +1 -0
- package/providers/frontegg.js +88 -0
- package/providers/fusionauth.d.ts +279 -0
- package/providers/fusionauth.d.ts.map +1 -0
- package/providers/fusionauth.js +292 -0
- package/providers/github.d.ts +127 -0
- package/providers/github.d.ts.map +1 -0
- package/providers/github.js +115 -0
- package/providers/gitlab.d.ts +115 -0
- package/providers/gitlab.d.ts.map +1 -0
- package/providers/gitlab.js +75 -0
- package/providers/google.d.ts +138 -0
- package/providers/google.d.ts.map +1 -0
- package/providers/google.js +119 -0
- package/providers/hubspot.d.ts +76 -0
- package/providers/hubspot.d.ts.map +1 -0
- package/providers/hubspot.js +93 -0
- package/providers/huggingface.d.ts +216 -0
- package/providers/huggingface.d.ts.map +1 -0
- package/providers/huggingface.js +101 -0
- package/providers/identity-server4.d.ts +69 -0
- package/providers/identity-server4.d.ts.map +1 -0
- package/providers/identity-server4.js +64 -0
- package/providers/index.d.ts +61 -0
- package/providers/index.d.ts.map +1 -0
- package/providers/index.js +3 -0
- package/providers/instagram.d.ts +74 -0
- package/providers/instagram.d.ts.map +1 -0
- package/providers/instagram.js +87 -0
- package/providers/kakao.d.ts +148 -0
- package/providers/kakao.d.ts.map +1 -0
- package/providers/kakao.js +103 -0
- package/providers/keycloak.d.ts +100 -0
- package/providers/keycloak.d.ts.map +1 -0
- package/providers/keycloak.js +73 -0
- package/providers/kinde.d.ts +73 -0
- package/providers/kinde.d.ts.map +1 -0
- package/providers/kinde.js +51 -0
- package/providers/line.d.ts +83 -0
- package/providers/line.d.ts.map +1 -0
- package/providers/line.js +73 -0
- package/providers/linkedin.d.ts +77 -0
- package/providers/linkedin.d.ts.map +1 -0
- package/providers/linkedin.js +65 -0
- package/providers/logto.d.ts +98 -0
- package/providers/logto.d.ts.map +1 -0
- package/providers/logto.js +81 -0
- package/providers/loops.d.ts +40 -0
- package/providers/loops.d.ts.map +1 -0
- package/providers/loops.js +59 -0
- package/providers/mailchimp.d.ts +66 -0
- package/providers/mailchimp.d.ts.map +1 -0
- package/providers/mailchimp.js +76 -0
- package/providers/mailgun.d.ts +55 -0
- package/providers/mailgun.d.ts.map +1 -0
- package/providers/mailgun.js +74 -0
- package/providers/mailru.d.ts +63 -0
- package/providers/mailru.d.ts.map +1 -0
- package/providers/mailru.js +61 -0
- package/providers/mastodon.d.ts +90 -0
- package/providers/mastodon.d.ts.map +1 -0
- package/providers/mastodon.js +75 -0
- package/providers/mattermost.d.ts +132 -0
- package/providers/mattermost.d.ts.map +1 -0
- package/providers/mattermost.js +83 -0
- package/providers/medium.d.ts +68 -0
- package/providers/medium.d.ts.map +1 -0
- package/providers/medium.js +84 -0
- package/providers/microsoft-entra-id.d.ts +428 -0
- package/providers/microsoft-entra-id.d.ts.map +1 -0
- package/providers/microsoft-entra-id.js +156 -0
- package/providers/naver.d.ts +80 -0
- package/providers/naver.d.ts.map +1 -0
- package/providers/naver.js +79 -0
- package/providers/netlify.d.ts +66 -0
- package/providers/netlify.d.ts.map +1 -0
- package/providers/netlify.js +85 -0
- package/providers/netsuite.d.ts +189 -0
- package/providers/netsuite.d.ts.map +1 -0
- package/providers/netsuite.js +170 -0
- package/providers/nextcloud.d.ts +150 -0
- package/providers/nextcloud.d.ts.map +1 -0
- package/providers/nextcloud.js +99 -0
- package/providers/nodemailer.d.ts +27 -0
- package/providers/nodemailer.d.ts.map +1 -0
- package/providers/nodemailer.js +34 -0
- package/providers/notion.d.ts +99 -0
- package/providers/notion.d.ts.map +1 -0
- package/providers/notion.js +110 -0
- package/providers/oauth.d.ts +188 -0
- package/providers/oauth.d.ts.map +1 -0
- package/providers/oauth.js +1 -0
- package/providers/okta.d.ts +99 -0
- package/providers/okta.d.ts.map +1 -0
- package/providers/okta.js +63 -0
- package/providers/onelogin.d.ts +65 -0
- package/providers/onelogin.d.ts.map +1 -0
- package/providers/onelogin.js +61 -0
- package/providers/ory-hydra.d.ts +79 -0
- package/providers/ory-hydra.d.ts.map +1 -0
- package/providers/ory-hydra.js +67 -0
- package/providers/osso.d.ts +79 -0
- package/providers/osso.d.ts.map +1 -0
- package/providers/osso.js +77 -0
- package/providers/osu.d.ts +116 -0
- package/providers/osu.d.ts.map +1 -0
- package/providers/osu.js +75 -0
- package/providers/passage.d.ts +88 -0
- package/providers/passage.d.ts.map +1 -0
- package/providers/passage.js +75 -0
- package/providers/passkey.d.ts +65 -0
- package/providers/passkey.d.ts.map +1 -0
- package/providers/passkey.js +87 -0
- package/providers/patreon.d.ts +73 -0
- package/providers/patreon.d.ts.map +1 -0
- package/providers/patreon.js +77 -0
- package/providers/ping-id.d.ts +57 -0
- package/providers/ping-id.d.ts.map +1 -0
- package/providers/ping-id.js +40 -0
- package/providers/pinterest.d.ts +79 -0
- package/providers/pinterest.d.ts.map +1 -0
- package/providers/pinterest.js +85 -0
- package/providers/pipedrive.d.ts +99 -0
- package/providers/pipedrive.d.ts.map +1 -0
- package/providers/pipedrive.js +71 -0
- package/providers/postmark.d.ts +4 -0
- package/providers/postmark.d.ts.map +1 -0
- package/providers/postmark.js +36 -0
- package/providers/provider-types.d.ts +3 -0
- package/providers/provider-types.d.ts.map +1 -0
- package/providers/provider-types.js +1 -0
- package/providers/reddit.d.ts +88 -0
- package/providers/reddit.d.ts.map +1 -0
- package/providers/reddit.js +90 -0
- package/providers/resend.d.ts +4 -0
- package/providers/resend.d.ts.map +1 -0
- package/providers/resend.js +32 -0
- package/providers/roblox.d.ts +67 -0
- package/providers/roblox.d.ts.map +1 -0
- package/providers/roblox.js +53 -0
- package/providers/salesforce.d.ts +59 -0
- package/providers/salesforce.d.ts.map +1 -0
- package/providers/salesforce.js +52 -0
- package/providers/sendgrid.d.ts +4 -0
- package/providers/sendgrid.d.ts.map +1 -0
- package/providers/sendgrid.js +35 -0
- package/providers/simplelogin.d.ts +87 -0
- package/providers/simplelogin.d.ts.map +1 -0
- package/providers/simplelogin.js +83 -0
- package/providers/slack.d.ts +102 -0
- package/providers/slack.d.ts.map +1 -0
- package/providers/slack.js +69 -0
- package/providers/spotify.d.ts +75 -0
- package/providers/spotify.d.ts.map +1 -0
- package/providers/spotify.js +73 -0
- package/providers/strava.d.ts +68 -0
- package/providers/strava.d.ts.map +1 -0
- package/providers/strava.js +80 -0
- package/providers/threads.d.ts +108 -0
- package/providers/threads.d.ts.map +1 -0
- package/providers/threads.js +89 -0
- package/providers/tiktok.d.ts +248 -0
- package/providers/tiktok.d.ts.map +1 -0
- package/providers/tiktok.js +195 -0
- package/providers/todoist.d.ts +76 -0
- package/providers/todoist.d.ts.map +1 -0
- package/providers/todoist.js +97 -0
- package/providers/trakt.d.ts +93 -0
- package/providers/trakt.d.ts.map +1 -0
- package/providers/trakt.js +91 -0
- package/providers/twitch.d.ts +71 -0
- package/providers/twitch.d.ts.map +1 -0
- package/providers/twitch.js +96 -0
- package/providers/twitter.d.ts +183 -0
- package/providers/twitter.d.ts.map +1 -0
- package/providers/twitter.js +100 -0
- package/providers/united-effects.d.ts +80 -0
- package/providers/united-effects.d.ts.map +1 -0
- package/providers/united-effects.js +72 -0
- package/providers/vipps.d.ts +71 -0
- package/providers/vipps.d.ts.map +1 -0
- package/providers/vipps.js +33 -0
- package/providers/vk.d.ts +334 -0
- package/providers/vk.d.ts.map +1 -0
- package/providers/vk.js +103 -0
- package/providers/webauthn.d.ts +148 -0
- package/providers/webauthn.d.ts.map +1 -0
- package/providers/webauthn.js +128 -0
- package/providers/webex.d.ts +78 -0
- package/providers/webex.d.ts.map +1 -0
- package/providers/webex.js +73 -0
- package/providers/wechat.d.ts +78 -0
- package/providers/wechat.d.ts.map +1 -0
- package/providers/wechat.js +105 -0
- package/providers/wikimedia.d.ts +99 -0
- package/providers/wikimedia.d.ts.map +1 -0
- package/providers/wikimedia.js +90 -0
- package/providers/wordpress.d.ts +65 -0
- package/providers/wordpress.d.ts.map +1 -0
- package/providers/wordpress.js +71 -0
- package/providers/workos.d.ts +154 -0
- package/providers/workos.d.ts.map +1 -0
- package/providers/workos.js +143 -0
- package/providers/yandex.d.ts +131 -0
- package/providers/yandex.d.ts.map +1 -0
- package/providers/yandex.js +80 -0
- package/providers/zitadel.d.ts +117 -0
- package/providers/zitadel.d.ts.map +1 -0
- package/providers/zitadel.js +95 -0
- package/providers/zoho.d.ts +63 -0
- package/providers/zoho.d.ts.map +1 -0
- package/providers/zoho.js +79 -0
- package/providers/zoom.d.ts +93 -0
- package/providers/zoom.d.ts.map +1 -0
- package/providers/zoom.js +82 -0
- package/src/adapters/server-actions-helpers.ts +126 -0
- package/src/adapters.ts +603 -0
- package/src/errors.ts +551 -0
- package/src/index.ts +689 -0
- package/src/jwt.ts +283 -0
- package/src/lib/actions/callback/handle-login.ts +334 -0
- package/src/lib/actions/callback/index.ts +554 -0
- package/src/lib/actions/callback/oauth/callback.ts +347 -0
- package/src/lib/actions/callback/oauth/checks.ts +258 -0
- package/src/lib/actions/callback/oauth/csrf-token.ts +60 -0
- package/src/lib/actions/index.ts +5 -0
- package/src/lib/actions/session.ts +167 -0
- package/src/lib/actions/signin/authorization-url.ts +123 -0
- package/src/lib/actions/signin/index.ts +37 -0
- package/src/lib/actions/signin/send-token.ts +124 -0
- package/src/lib/actions/signout.ts +38 -0
- package/src/lib/actions/webauthn-options.ts +100 -0
- package/src/lib/index.ts +97 -0
- package/src/lib/init.ts +236 -0
- package/src/lib/pages/error.tsx +106 -0
- package/src/lib/pages/index.ts +181 -0
- package/src/lib/pages/signin.tsx +255 -0
- package/src/lib/pages/signout.tsx +49 -0
- package/src/lib/pages/styles.css +377 -0
- package/src/lib/pages/styles.ts +381 -0
- package/src/lib/pages/verify-request.tsx +36 -0
- package/src/lib/symbols.ts +60 -0
- package/src/lib/utils/actions.ts +17 -0
- package/src/lib/utils/assert.ts +259 -0
- package/src/lib/utils/callback-url.ts +42 -0
- package/src/lib/utils/cookie.ts +248 -0
- package/src/lib/utils/date.ts +8 -0
- package/src/lib/utils/email.ts +65 -0
- package/src/lib/utils/env.ts +113 -0
- package/src/lib/utils/logger.ts +75 -0
- package/src/lib/utils/merge.ts +30 -0
- package/src/lib/utils/providers.ts +203 -0
- package/src/lib/utils/session.ts +41 -0
- package/src/lib/utils/web.ts +151 -0
- package/src/lib/utils/webauthn-client.js +229 -0
- package/src/lib/utils/webauthn-utils.ts +531 -0
- package/src/lib/vendored/cookie.ts +383 -0
- package/src/providers/42-school.ts +256 -0
- package/src/providers/apple.ts +206 -0
- package/src/providers/asgardeo.ts +118 -0
- package/src/providers/atlassian.ts +120 -0
- package/src/providers/auth0.ts +127 -0
- package/src/providers/authentik.ts +100 -0
- package/src/providers/azure-ad-b2c.ts +124 -0
- package/src/providers/azure-ad.ts +30 -0
- package/src/providers/azure-devops.ts +184 -0
- package/src/providers/bankid-no.ts +161 -0
- package/src/providers/battlenet.ts +107 -0
- package/src/providers/beyondidentity.ts +102 -0
- package/src/providers/bitbucket.ts +122 -0
- package/src/providers/box.ts +87 -0
- package/src/providers/boxyhq-saml.ts +148 -0
- package/src/providers/bungie.ts +192 -0
- package/src/providers/click-up.ts +104 -0
- package/src/providers/cognito.ts +94 -0
- package/src/providers/coinbase.ts +93 -0
- package/src/providers/concept2.ts +108 -0
- package/src/providers/credentials.ts +157 -0
- package/src/providers/descope.ts +105 -0
- package/src/providers/discord.ts +176 -0
- package/src/providers/dribbble.ts +122 -0
- package/src/providers/dropbox.ts +102 -0
- package/src/providers/duende-identity-server6.ts +101 -0
- package/src/providers/email.ts +60 -0
- package/src/providers/eventbrite.ts +105 -0
- package/src/providers/eveonline.ts +117 -0
- package/src/providers/facebook.ts +119 -0
- package/src/providers/faceit.ts +90 -0
- package/src/providers/figma.ts +105 -0
- package/src/providers/forwardemail.ts +37 -0
- package/src/providers/foursquare.ts +105 -0
- package/src/providers/freshbooks.ts +90 -0
- package/src/providers/frontegg.ts +111 -0
- package/src/providers/fusionauth.ts +336 -0
- package/src/providers/github.ts +187 -0
- package/src/providers/gitlab.ts +140 -0
- package/src/providers/google.ts +152 -0
- package/src/providers/hubspot.ts +117 -0
- package/src/providers/huggingface.ts +234 -0
- package/src/providers/identity-server4.ts +78 -0
- package/src/providers/index.ts +115 -0
- package/src/providers/instagram.ts +103 -0
- package/src/providers/kakao.ts +184 -0
- package/src/providers/keycloak.ts +111 -0
- package/src/providers/kinde.ts +85 -0
- package/src/providers/line.ts +99 -0
- package/src/providers/linkedin.ts +91 -0
- package/src/providers/logto.ts +122 -0
- package/src/providers/loops.ts +79 -0
- package/src/providers/mailchimp.ts +90 -0
- package/src/providers/mailgun.ts +98 -0
- package/src/providers/mailru.ts +75 -0
- package/src/providers/mastodon.ts +112 -0
- package/src/providers/mattermost.ts +154 -0
- package/src/providers/medium.ts +89 -0
- package/src/providers/microsoft-entra-id.ts +497 -0
- package/src/providers/naver.ts +102 -0
- package/src/providers/netlify.ts +90 -0
- package/src/providers/netsuite.ts +225 -0
- package/src/providers/nextcloud.ts +207 -0
- package/src/providers/nodemailer.ts +84 -0
- package/src/providers/notion.ts +166 -0
- package/src/providers/oauth.ts +310 -0
- package/src/providers/okta.ts +111 -0
- package/src/providers/onelogin.ts +75 -0
- package/src/providers/ory-hydra.ts +93 -0
- package/src/providers/osso.ts +91 -0
- package/src/providers/osu.ts +138 -0
- package/src/providers/passage.ts +103 -0
- package/src/providers/passkey.ts +94 -0
- package/src/providers/patreon.ts +98 -0
- package/src/providers/ping-id.ts +68 -0
- package/src/providers/pinterest.ts +106 -0
- package/src/providers/pipedrive.ts +120 -0
- package/src/providers/postmark.ts +38 -0
- package/src/providers/provider-types.ts +107 -0
- package/src/providers/reddit.ts +104 -0
- package/src/providers/resend.ts +35 -0
- package/src/providers/roblox.ts +94 -0
- package/src/providers/salesforce.ts +73 -0
- package/src/providers/sendgrid.ts +36 -0
- package/src/providers/simplelogin.ts +107 -0
- package/src/providers/slack.ts +115 -0
- package/src/providers/spotify.ts +99 -0
- package/src/providers/strava.ts +101 -0
- package/src/providers/threads.ts +135 -0
- package/src/providers/tiktok.ts +319 -0
- package/src/providers/todoist.ts +122 -0
- package/src/providers/trakt.ts +120 -0
- package/src/providers/twitch.ts +121 -0
- package/src/providers/twitter.ts +207 -0
- package/src/providers/united-effects.ts +89 -0
- package/src/providers/vipps.ts +86 -0
- package/src/providers/vk.ts +401 -0
- package/src/providers/webauthn.ts +296 -0
- package/src/providers/webex.ts +102 -0
- package/src/providers/wechat.ts +141 -0
- package/src/providers/wikimedia.ts +258 -0
- package/src/providers/wordpress.ts +86 -0
- package/src/providers/workos.ts +180 -0
- package/src/providers/yandex.ts +159 -0
- package/src/providers/zitadel.ts +128 -0
- package/src/providers/zoho.ts +84 -0
- package/src/providers/zoom.ts +119 -0
- package/src/types.ts +430 -0
- package/src/warnings.ts +21 -0
- package/types.d.ts +309 -0
- package/types.d.ts.map +1 -0
- package/types.js +53 -0
- package/warnings.d.ts +17 -0
- package/warnings.d.ts.map +1 -0
- package/warnings.js +1 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add Authentik login to your page.
|
|
3
|
+
*
|
|
4
|
+
* ### Setup
|
|
5
|
+
*
|
|
6
|
+
* #### Callback URL
|
|
7
|
+
* ```
|
|
8
|
+
* https://example.com/api/auth/callback/authentik
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* #### Configuration
|
|
12
|
+
*```ts
|
|
13
|
+
* import { Auth } from "@auth/core"
|
|
14
|
+
* import Authentik from "@auth/core/providers/authentik"
|
|
15
|
+
*
|
|
16
|
+
* const request = new Request(origin)
|
|
17
|
+
* const response = await Auth(request, {
|
|
18
|
+
* providers: [
|
|
19
|
+
* Authentik({
|
|
20
|
+
* clientId: AUTHENTIK_CLIENT_ID,
|
|
21
|
+
* clientSecret: AUTHENTIK_CLIENT_SECRET,
|
|
22
|
+
* issuer: AUTHENTIK_ISSUER,
|
|
23
|
+
* }),
|
|
24
|
+
* ],
|
|
25
|
+
* })
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* :::note
|
|
29
|
+
* issuer should include the slug without a trailing slash – e.g., https://my-authentik-domain.com/application/o/My_Slug
|
|
30
|
+
* :::
|
|
31
|
+
*
|
|
32
|
+
* ### Resources
|
|
33
|
+
*
|
|
34
|
+
* - [Authentik OAuth documentation](https://goauthentik.io/docs/providers/oauth2)
|
|
35
|
+
*
|
|
36
|
+
* ### Notes
|
|
37
|
+
*
|
|
38
|
+
* By default, Auth.js assumes that the Authentik provider is
|
|
39
|
+
* based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
40
|
+
*
|
|
41
|
+
* :::tip
|
|
42
|
+
*
|
|
43
|
+
* The Authentik provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/authentik.ts).
|
|
44
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
45
|
+
*
|
|
46
|
+
* :::
|
|
47
|
+
*
|
|
48
|
+
* :::info **Disclaimer**
|
|
49
|
+
*
|
|
50
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
51
|
+
*
|
|
52
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
53
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
54
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
55
|
+
*
|
|
56
|
+
* :::
|
|
57
|
+
*/
|
|
58
|
+
export default function Authentik(options) {
|
|
59
|
+
return {
|
|
60
|
+
id: "authentik",
|
|
61
|
+
name: "Authentik",
|
|
62
|
+
type: "oidc",
|
|
63
|
+
options,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Azure AD B2C</b> integration.</span>
|
|
4
|
+
* <a href="https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/azure-ad-b2c
|
|
10
|
+
*/
|
|
11
|
+
import type { OIDCConfig, OIDCUserConfig } from "./index.js";
|
|
12
|
+
/** @see [Claims](https://learn.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview#claims) */
|
|
13
|
+
export interface AzureADB2CProfile {
|
|
14
|
+
exp: number;
|
|
15
|
+
nbf: number;
|
|
16
|
+
ver: string;
|
|
17
|
+
iss: string;
|
|
18
|
+
sub: string;
|
|
19
|
+
aud: string;
|
|
20
|
+
iat: number;
|
|
21
|
+
auth_time: number;
|
|
22
|
+
oid: string;
|
|
23
|
+
country: string;
|
|
24
|
+
name: string;
|
|
25
|
+
postalCode: string;
|
|
26
|
+
emails: string[];
|
|
27
|
+
tfp: string;
|
|
28
|
+
preferred_username: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Add Azure AD B2C login to your page.
|
|
32
|
+
*
|
|
33
|
+
*
|
|
34
|
+
* ## Configuration
|
|
35
|
+
*
|
|
36
|
+
* ### Basic
|
|
37
|
+
*
|
|
38
|
+
* Basic configuration sets up Azure AD B2C to return an ID Token. This should be done as a prerequisite prior to running through the Advanced configuration.
|
|
39
|
+
*
|
|
40
|
+
* 1. [Azure AD B2C Tenant](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant)
|
|
41
|
+
* 2. [App Registration](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications)
|
|
42
|
+
* 3. [User Flow](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows)
|
|
43
|
+
*
|
|
44
|
+
* For the step "User attributes and token claims" set the following:
|
|
45
|
+
*
|
|
46
|
+
* - Collect attribute:
|
|
47
|
+
* - Email Address
|
|
48
|
+
* - Display Name
|
|
49
|
+
* - Given Name
|
|
50
|
+
* - Surname
|
|
51
|
+
* - Return claim:
|
|
52
|
+
* - Email Addresses
|
|
53
|
+
* - Display Name
|
|
54
|
+
* - Given Name
|
|
55
|
+
* - Surname
|
|
56
|
+
* - Identity Provider
|
|
57
|
+
* - Identity Provider Access Token
|
|
58
|
+
* - User's Object ID
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
*
|
|
62
|
+
* ```ts
|
|
63
|
+
* import { Auth } from "@auth/core"
|
|
64
|
+
* import AzureADB2C from "@auth/core/providers/azure-ad-b2c"
|
|
65
|
+
*
|
|
66
|
+
* const request = new Request("https://example.com")
|
|
67
|
+
* const response = await AuthHandler(request, {
|
|
68
|
+
* // optionally, you can pass `tenantId` and `primaryUserFlow` instead of `issuer`
|
|
69
|
+
* providers: [AzureADB2C({ clientId: "", clientSecret: "", issuer: "" })],
|
|
70
|
+
* })
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* ---
|
|
74
|
+
*
|
|
75
|
+
* ### Resources
|
|
76
|
+
*
|
|
77
|
+
* - [Azure Active Directory B2C documentation](https://learn.microsoft.com/en-us/azure/active-directory-b2c)
|
|
78
|
+
*
|
|
79
|
+
* ---
|
|
80
|
+
*
|
|
81
|
+
* ### Notes
|
|
82
|
+
*
|
|
83
|
+
* By default, Auth.js assumes that the Azure AD B2C provider is
|
|
84
|
+
* based on the [OIDC](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
85
|
+
*
|
|
86
|
+
* :::tip
|
|
87
|
+
*
|
|
88
|
+
* The Azure AD B2C provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/azure-ad-b2c.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 AzureADB2C(options: OIDCUserConfig<AzureADB2CProfile>): OIDCConfig<AzureADB2CProfile>;
|
|
104
|
+
//# sourceMappingURL=azure-ad-b2c.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-ad-b2c.d.ts","sourceRoot":"","sources":["../src/providers/azure-ad-b2c.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE5D,yGAAyG;AACzG,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,OAAO,EAAE,cAAc,CAAC,iBAAiB,CAAC,GACzC,UAAU,CAAC,iBAAiB,CAAC,CAgB/B"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Azure AD B2C</b> integration.</span>
|
|
4
|
+
* <a href="https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/azure-ad-b2c
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Add Azure AD B2C login to your page.
|
|
13
|
+
*
|
|
14
|
+
*
|
|
15
|
+
* ## Configuration
|
|
16
|
+
*
|
|
17
|
+
* ### Basic
|
|
18
|
+
*
|
|
19
|
+
* Basic configuration sets up Azure AD B2C to return an ID Token. This should be done as a prerequisite prior to running through the Advanced configuration.
|
|
20
|
+
*
|
|
21
|
+
* 1. [Azure AD B2C Tenant](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant)
|
|
22
|
+
* 2. [App Registration](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications)
|
|
23
|
+
* 3. [User Flow](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows)
|
|
24
|
+
*
|
|
25
|
+
* For the step "User attributes and token claims" set the following:
|
|
26
|
+
*
|
|
27
|
+
* - Collect attribute:
|
|
28
|
+
* - Email Address
|
|
29
|
+
* - Display Name
|
|
30
|
+
* - Given Name
|
|
31
|
+
* - Surname
|
|
32
|
+
* - Return claim:
|
|
33
|
+
* - Email Addresses
|
|
34
|
+
* - Display Name
|
|
35
|
+
* - Given Name
|
|
36
|
+
* - Surname
|
|
37
|
+
* - Identity Provider
|
|
38
|
+
* - Identity Provider Access Token
|
|
39
|
+
* - User's Object ID
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
*
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { Auth } from "@auth/core"
|
|
45
|
+
* import AzureADB2C from "@auth/core/providers/azure-ad-b2c"
|
|
46
|
+
*
|
|
47
|
+
* const request = new Request("https://example.com")
|
|
48
|
+
* const response = await AuthHandler(request, {
|
|
49
|
+
* // optionally, you can pass `tenantId` and `primaryUserFlow` instead of `issuer`
|
|
50
|
+
* providers: [AzureADB2C({ clientId: "", clientSecret: "", issuer: "" })],
|
|
51
|
+
* })
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* ---
|
|
55
|
+
*
|
|
56
|
+
* ### Resources
|
|
57
|
+
*
|
|
58
|
+
* - [Azure Active Directory B2C documentation](https://learn.microsoft.com/en-us/azure/active-directory-b2c)
|
|
59
|
+
*
|
|
60
|
+
* ---
|
|
61
|
+
*
|
|
62
|
+
* ### Notes
|
|
63
|
+
*
|
|
64
|
+
* By default, Auth.js assumes that the Azure AD B2C provider is
|
|
65
|
+
* based on the [OIDC](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
66
|
+
*
|
|
67
|
+
* :::tip
|
|
68
|
+
*
|
|
69
|
+
* The Azure AD B2C provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/azure-ad-b2c.ts).
|
|
70
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
71
|
+
*
|
|
72
|
+
* :::
|
|
73
|
+
*
|
|
74
|
+
* :::info **Disclaimer**
|
|
75
|
+
*
|
|
76
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
77
|
+
*
|
|
78
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
79
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
80
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
81
|
+
*
|
|
82
|
+
* :::
|
|
83
|
+
*/
|
|
84
|
+
export default function AzureADB2C(options) {
|
|
85
|
+
return {
|
|
86
|
+
id: "azure-ad-b2c",
|
|
87
|
+
name: "Azure AD B2C",
|
|
88
|
+
type: "oidc",
|
|
89
|
+
profile(profile) {
|
|
90
|
+
return {
|
|
91
|
+
id: profile.sub,
|
|
92
|
+
name: profile.name ?? profile.preferred_username,
|
|
93
|
+
email: profile?.emails?.[0],
|
|
94
|
+
image: null,
|
|
95
|
+
};
|
|
96
|
+
},
|
|
97
|
+
style: { text: "#fff", bg: "#0072c6" },
|
|
98
|
+
options,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Azure AD</b> integration.</span>
|
|
4
|
+
* <a href="https://learn.microsoft.com/en-us/azure/active-directory">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure-ad.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/azure-ad
|
|
10
|
+
*/
|
|
11
|
+
import MicrosoftEntraID, { MicrosoftEntraIDProfile } from "./microsoft-entra-id.js";
|
|
12
|
+
export type AzureADProfile = MicrosoftEntraIDProfile;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated
|
|
15
|
+
* Azure Active Directory has been renamed to [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id).
|
|
16
|
+
* Import this provider from the `providers/microsoft-entra-id` submodule instead of `providers/azure-ad`.
|
|
17
|
+
*/
|
|
18
|
+
export default function AzureAD(config: Parameters<typeof MicrosoftEntraID>[0]): ReturnType<typeof MicrosoftEntraID>;
|
|
19
|
+
//# sourceMappingURL=azure-ad.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-ad.d.ts","sourceRoot":"","sources":["../src/providers/azure-ad.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,gBAAgB,EAAE,EACvB,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAEhC,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAC7C,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAMrC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#0072c6", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Azure AD</b> integration.</span>
|
|
4
|
+
* <a href="https://learn.microsoft.com/en-us/azure/active-directory">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/azure-ad.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/azure-ad
|
|
10
|
+
*/
|
|
11
|
+
import MicrosoftEntraID from "./microsoft-entra-id.js";
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated
|
|
14
|
+
* Azure Active Directory has been renamed to [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id).
|
|
15
|
+
* Import this provider from the `providers/microsoft-entra-id` submodule instead of `providers/azure-ad`.
|
|
16
|
+
*/
|
|
17
|
+
export default function AzureAD(config) {
|
|
18
|
+
return {
|
|
19
|
+
...MicrosoftEntraID(config),
|
|
20
|
+
id: "azure-ad",
|
|
21
|
+
name: "Azure Active Directory",
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { OAuthConfig, OAuthUserConfig } from "./index.js";
|
|
2
|
+
/** @see [Azure DevOps Services REST API 7.0 · Profiles · Get](https://learn.microsoft.com/en-us/rest/api/azure/devops/profile/profiles/get?view=azure-devops-rest-7.0&tabs=HTTP#examples) */
|
|
3
|
+
export interface AzureDevOpsProfile extends Record<string, any> {
|
|
4
|
+
id: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
emailAddress: string;
|
|
7
|
+
coreAttributes: {
|
|
8
|
+
Avatar: {
|
|
9
|
+
value: {
|
|
10
|
+
value: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @deprecated
|
|
18
|
+
* While still available, Microsoft is [no longer supporting](https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#available-oauth-models) Azure DevOps OAuth and recommends using [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id) instead.
|
|
19
|
+
*
|
|
20
|
+
* ## Documentation
|
|
21
|
+
*
|
|
22
|
+
* [Microsoft Docs](https://docs.microsoft.com/en-us) · [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/) · [Authorize access to REST APIs with OAuth 2.0](https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops])
|
|
23
|
+
*
|
|
24
|
+
* ## Configuration
|
|
25
|
+
*
|
|
26
|
+
* ### Register application
|
|
27
|
+
*
|
|
28
|
+
* :::tip
|
|
29
|
+
* [`https://app.vsaex.visualstudio.com/app/register`](https://app.vsaex.visualstudio.com/app/register)
|
|
30
|
+
* :::
|
|
31
|
+
*
|
|
32
|
+
* Provide the required details:
|
|
33
|
+
*
|
|
34
|
+
* - Company name
|
|
35
|
+
* - Application name
|
|
36
|
+
* - Application website
|
|
37
|
+
* - Authorization callback URL
|
|
38
|
+
* - `https://example.com/api/auth/callback/azure-devops` for production
|
|
39
|
+
* - `https://localhost/api/auth/callback/azure-devops` for development
|
|
40
|
+
* - Authorized scopes
|
|
41
|
+
* - Required minimum is `User profile (read)`
|
|
42
|
+
*
|
|
43
|
+
* Click ‘Create Application’
|
|
44
|
+
*
|
|
45
|
+
* :::warning
|
|
46
|
+
* You are required to use HTTPS even for the localhost
|
|
47
|
+
* :::
|
|
48
|
+
*
|
|
49
|
+
* :::warning
|
|
50
|
+
* You will have to delete and create a new application to change the scopes later
|
|
51
|
+
* :::
|
|
52
|
+
*
|
|
53
|
+
* The following data is relevant for the next step:
|
|
54
|
+
*
|
|
55
|
+
* - App ID
|
|
56
|
+
* - Client Secret (after clicking the ‘Show’ button, ignore App Secret entry above it)
|
|
57
|
+
* - Authorized Scopes
|
|
58
|
+
*
|
|
59
|
+
* ### Set up the environment variables
|
|
60
|
+
*
|
|
61
|
+
* In `.env.local` create the following entries:
|
|
62
|
+
*
|
|
63
|
+
* ```
|
|
64
|
+
* AZURE_DEVOPS_APP_ID=<copy App ID value here>
|
|
65
|
+
* AZURE_DEVOPS_CLIENT_SECRET=<copy generated client secret value here>
|
|
66
|
+
* AZURE_DEVOPS_SCOPE=<copy space separated Authorized Scopes list here>
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* ## Example
|
|
70
|
+
*
|
|
71
|
+
* ```ts
|
|
72
|
+
* import AzureDevOps from "@auth/core/providers/azure-devops"
|
|
73
|
+
* ...
|
|
74
|
+
* providers: [
|
|
75
|
+
* AzureDevOps({
|
|
76
|
+
* clientId: process.env.AZURE_DEVOPS_APP_ID,
|
|
77
|
+
* clientSecret: process.env.AZURE_DEVOPS_CLIENT_SECRET,
|
|
78
|
+
* scope: process.env.AZURE_DEVOPS_SCOPE,
|
|
79
|
+
* }),
|
|
80
|
+
* ]
|
|
81
|
+
* ...
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* ### Refresh token rotation
|
|
85
|
+
*
|
|
86
|
+
* Use the [main guide](/guides/basics/refresh-token-rotation) as your starting point with the following considerations:
|
|
87
|
+
*
|
|
88
|
+
* ```ts
|
|
89
|
+
* async jwt({ token, user, account }) {
|
|
90
|
+
* ...
|
|
91
|
+
* // The token has an absolute expiration time
|
|
92
|
+
* const accessTokenExpires = account.expires_at * 1000
|
|
93
|
+
* ...
|
|
94
|
+
* }
|
|
95
|
+
*
|
|
96
|
+
* async function refreshAccessToken(token) {
|
|
97
|
+
* ...
|
|
98
|
+
* const response = await fetch(
|
|
99
|
+
* "https://app.vssps.visualstudio.com/oauth2/token",
|
|
100
|
+
* {
|
|
101
|
+
* headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
102
|
+
* method: "POST",
|
|
103
|
+
* body: new URLSearchParams({
|
|
104
|
+
* client_assertion_type:
|
|
105
|
+
* "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
|
|
106
|
+
* client_assertion: process.env.AZURE_DEVOPS_CLIENT_SECRET,
|
|
107
|
+
* grant_type: "refresh_token",
|
|
108
|
+
* assertion: token.refreshToken,
|
|
109
|
+
* redirect_uri:
|
|
110
|
+
* process.env.NEXTAUTH_URL + "/api/auth/callback/azure-devops",
|
|
111
|
+
* }),
|
|
112
|
+
* }
|
|
113
|
+
* )
|
|
114
|
+
* ...
|
|
115
|
+
* // The refreshed token comes with a relative expiration time
|
|
116
|
+
* const accessTokenExpires = Date.now() + newToken.expires_in * 1000
|
|
117
|
+
* ...
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export default function AzureDevOpsProvider<P extends AzureDevOpsProfile>(options: OAuthUserConfig<P> & {
|
|
122
|
+
/**
|
|
123
|
+
* https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#scopes
|
|
124
|
+
* @default vso.profile
|
|
125
|
+
*/
|
|
126
|
+
scope?: string;
|
|
127
|
+
}): OAuthConfig<P>;
|
|
128
|
+
//# sourceMappingURL=azure-devops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-devops.d.ts","sourceRoot":"","sources":["../src/providers/azure-devops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEzD,6LAA6L;AAC7L,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC7D,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE,CAAA;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,EACtE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GACA,WAAW,CAAC,CAAC,CAAC,CA2DhB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @deprecated
|
|
4
|
+
* While still available, Microsoft is [no longer supporting](https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#available-oauth-models) Azure DevOps OAuth and recommends using [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id) instead.
|
|
5
|
+
*
|
|
6
|
+
* ## Documentation
|
|
7
|
+
*
|
|
8
|
+
* [Microsoft Docs](https://docs.microsoft.com/en-us) · [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/) · [Authorize access to REST APIs with OAuth 2.0](https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops])
|
|
9
|
+
*
|
|
10
|
+
* ## Configuration
|
|
11
|
+
*
|
|
12
|
+
* ### Register application
|
|
13
|
+
*
|
|
14
|
+
* :::tip
|
|
15
|
+
* [`https://app.vsaex.visualstudio.com/app/register`](https://app.vsaex.visualstudio.com/app/register)
|
|
16
|
+
* :::
|
|
17
|
+
*
|
|
18
|
+
* Provide the required details:
|
|
19
|
+
*
|
|
20
|
+
* - Company name
|
|
21
|
+
* - Application name
|
|
22
|
+
* - Application website
|
|
23
|
+
* - Authorization callback URL
|
|
24
|
+
* - `https://example.com/api/auth/callback/azure-devops` for production
|
|
25
|
+
* - `https://localhost/api/auth/callback/azure-devops` for development
|
|
26
|
+
* - Authorized scopes
|
|
27
|
+
* - Required minimum is `User profile (read)`
|
|
28
|
+
*
|
|
29
|
+
* Click ‘Create Application’
|
|
30
|
+
*
|
|
31
|
+
* :::warning
|
|
32
|
+
* You are required to use HTTPS even for the localhost
|
|
33
|
+
* :::
|
|
34
|
+
*
|
|
35
|
+
* :::warning
|
|
36
|
+
* You will have to delete and create a new application to change the scopes later
|
|
37
|
+
* :::
|
|
38
|
+
*
|
|
39
|
+
* The following data is relevant for the next step:
|
|
40
|
+
*
|
|
41
|
+
* - App ID
|
|
42
|
+
* - Client Secret (after clicking the ‘Show’ button, ignore App Secret entry above it)
|
|
43
|
+
* - Authorized Scopes
|
|
44
|
+
*
|
|
45
|
+
* ### Set up the environment variables
|
|
46
|
+
*
|
|
47
|
+
* In `.env.local` create the following entries:
|
|
48
|
+
*
|
|
49
|
+
* ```
|
|
50
|
+
* AZURE_DEVOPS_APP_ID=<copy App ID value here>
|
|
51
|
+
* AZURE_DEVOPS_CLIENT_SECRET=<copy generated client secret value here>
|
|
52
|
+
* AZURE_DEVOPS_SCOPE=<copy space separated Authorized Scopes list here>
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ## Example
|
|
56
|
+
*
|
|
57
|
+
* ```ts
|
|
58
|
+
* import AzureDevOps from "@auth/core/providers/azure-devops"
|
|
59
|
+
* ...
|
|
60
|
+
* providers: [
|
|
61
|
+
* AzureDevOps({
|
|
62
|
+
* clientId: process.env.AZURE_DEVOPS_APP_ID,
|
|
63
|
+
* clientSecret: process.env.AZURE_DEVOPS_CLIENT_SECRET,
|
|
64
|
+
* scope: process.env.AZURE_DEVOPS_SCOPE,
|
|
65
|
+
* }),
|
|
66
|
+
* ]
|
|
67
|
+
* ...
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* ### Refresh token rotation
|
|
71
|
+
*
|
|
72
|
+
* Use the [main guide](/guides/basics/refresh-token-rotation) as your starting point with the following considerations:
|
|
73
|
+
*
|
|
74
|
+
* ```ts
|
|
75
|
+
* async jwt({ token, user, account }) {
|
|
76
|
+
* ...
|
|
77
|
+
* // The token has an absolute expiration time
|
|
78
|
+
* const accessTokenExpires = account.expires_at * 1000
|
|
79
|
+
* ...
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* async function refreshAccessToken(token) {
|
|
83
|
+
* ...
|
|
84
|
+
* const response = await fetch(
|
|
85
|
+
* "https://app.vssps.visualstudio.com/oauth2/token",
|
|
86
|
+
* {
|
|
87
|
+
* headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
88
|
+
* method: "POST",
|
|
89
|
+
* body: new URLSearchParams({
|
|
90
|
+
* client_assertion_type:
|
|
91
|
+
* "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
|
|
92
|
+
* client_assertion: process.env.AZURE_DEVOPS_CLIENT_SECRET,
|
|
93
|
+
* grant_type: "refresh_token",
|
|
94
|
+
* assertion: token.refreshToken,
|
|
95
|
+
* redirect_uri:
|
|
96
|
+
* process.env.NEXTAUTH_URL + "/api/auth/callback/azure-devops",
|
|
97
|
+
* }),
|
|
98
|
+
* }
|
|
99
|
+
* )
|
|
100
|
+
* ...
|
|
101
|
+
* // The refreshed token comes with a relative expiration time
|
|
102
|
+
* const accessTokenExpires = Date.now() + newToken.expires_in * 1000
|
|
103
|
+
* ...
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export default function AzureDevOpsProvider(options) {
|
|
108
|
+
const scope = options.scope ?? "vso.profile";
|
|
109
|
+
const tokenEndpointUrl = "https://app.vssps.visualstudio.com/oauth2/authorize";
|
|
110
|
+
const userInfoEndpointUrl = "https://app.vssps.visualstudio.com/_apis/profile/profiles/me?details=true&coreAttributes=Avatar&api-version=6.0";
|
|
111
|
+
return {
|
|
112
|
+
id: "azure-devops",
|
|
113
|
+
name: "Azure DevOps",
|
|
114
|
+
type: "oauth",
|
|
115
|
+
authorization: {
|
|
116
|
+
url: "https://app.vssps.visualstudio.com/oauth2/authorize",
|
|
117
|
+
params: { response_type: "Assertion", scope },
|
|
118
|
+
},
|
|
119
|
+
token: {
|
|
120
|
+
url: tokenEndpointUrl,
|
|
121
|
+
async request(context) {
|
|
122
|
+
const response = await fetch(tokenEndpointUrl, {
|
|
123
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
124
|
+
method: "POST",
|
|
125
|
+
body: new URLSearchParams({
|
|
126
|
+
client_assertion_type: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
|
|
127
|
+
client_assertion: context.provider.clientSecret,
|
|
128
|
+
grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
|
|
129
|
+
assertion: context.params.code,
|
|
130
|
+
redirect_uri: context.provider.callbackUrl,
|
|
131
|
+
}),
|
|
132
|
+
});
|
|
133
|
+
return { tokens: await response.json() };
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
userinfo: {
|
|
137
|
+
url: userInfoEndpointUrl,
|
|
138
|
+
async request(context) {
|
|
139
|
+
const accessToken = context.tokens.access_token;
|
|
140
|
+
const response = await fetch(userInfoEndpointUrl, {
|
|
141
|
+
headers: {
|
|
142
|
+
Authorization: `Bearer ${accessToken}`,
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
return response.json();
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
profile(profile) {
|
|
149
|
+
return {
|
|
150
|
+
id: profile.id,
|
|
151
|
+
name: profile.displayName,
|
|
152
|
+
email: profile.emailAddress,
|
|
153
|
+
image: `data:image/jpeg;base64,${profile.coreAttributes.Avatar.value.value}`,
|
|
154
|
+
};
|
|
155
|
+
},
|
|
156
|
+
options,
|
|
157
|
+
};
|
|
158
|
+
}
|