@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,124 @@
|
|
|
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
|
+
import type { OIDCConfig, OIDCUserConfig } from "./index.js"
|
|
13
|
+
|
|
14
|
+
/** @see [Claims](https://learn.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview#claims) */
|
|
15
|
+
export interface AzureADB2CProfile {
|
|
16
|
+
exp: number
|
|
17
|
+
nbf: number
|
|
18
|
+
ver: string
|
|
19
|
+
iss: string
|
|
20
|
+
sub: string
|
|
21
|
+
aud: string
|
|
22
|
+
iat: number
|
|
23
|
+
auth_time: number
|
|
24
|
+
oid: string
|
|
25
|
+
country: string
|
|
26
|
+
name: string
|
|
27
|
+
postalCode: string
|
|
28
|
+
emails: string[]
|
|
29
|
+
tfp: string
|
|
30
|
+
preferred_username: string
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Add Azure AD B2C login to your page.
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
* ## Configuration
|
|
38
|
+
*
|
|
39
|
+
* ### Basic
|
|
40
|
+
*
|
|
41
|
+
* 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.
|
|
42
|
+
*
|
|
43
|
+
* 1. [Azure AD B2C Tenant](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant)
|
|
44
|
+
* 2. [App Registration](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications)
|
|
45
|
+
* 3. [User Flow](https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows)
|
|
46
|
+
*
|
|
47
|
+
* For the step "User attributes and token claims" set the following:
|
|
48
|
+
*
|
|
49
|
+
* - Collect attribute:
|
|
50
|
+
* - Email Address
|
|
51
|
+
* - Display Name
|
|
52
|
+
* - Given Name
|
|
53
|
+
* - Surname
|
|
54
|
+
* - Return claim:
|
|
55
|
+
* - Email Addresses
|
|
56
|
+
* - Display Name
|
|
57
|
+
* - Given Name
|
|
58
|
+
* - Surname
|
|
59
|
+
* - Identity Provider
|
|
60
|
+
* - Identity Provider Access Token
|
|
61
|
+
* - User's Object ID
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
*
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { Auth } from "@auth/core"
|
|
67
|
+
* import AzureADB2C from "@auth/core/providers/azure-ad-b2c"
|
|
68
|
+
*
|
|
69
|
+
* const request = new Request("https://example.com")
|
|
70
|
+
* const response = await AuthHandler(request, {
|
|
71
|
+
* // optionally, you can pass `tenantId` and `primaryUserFlow` instead of `issuer`
|
|
72
|
+
* providers: [AzureADB2C({ clientId: "", clientSecret: "", issuer: "" })],
|
|
73
|
+
* })
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* ---
|
|
77
|
+
*
|
|
78
|
+
* ### Resources
|
|
79
|
+
*
|
|
80
|
+
* - [Azure Active Directory B2C documentation](https://learn.microsoft.com/en-us/azure/active-directory-b2c)
|
|
81
|
+
*
|
|
82
|
+
* ---
|
|
83
|
+
*
|
|
84
|
+
* ### Notes
|
|
85
|
+
*
|
|
86
|
+
* By default, Auth.js assumes that the Azure AD B2C provider is
|
|
87
|
+
* based on the [OIDC](https://openid.net/specs/openid-connect-core-1_0.html) specification.
|
|
88
|
+
*
|
|
89
|
+
* :::tip
|
|
90
|
+
*
|
|
91
|
+
* 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).
|
|
92
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
93
|
+
*
|
|
94
|
+
* :::
|
|
95
|
+
*
|
|
96
|
+
* :::info **Disclaimer**
|
|
97
|
+
*
|
|
98
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
99
|
+
*
|
|
100
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
101
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
102
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
103
|
+
*
|
|
104
|
+
* :::
|
|
105
|
+
*/
|
|
106
|
+
export default function AzureADB2C(
|
|
107
|
+
options: OIDCUserConfig<AzureADB2CProfile>
|
|
108
|
+
): OIDCConfig<AzureADB2CProfile> {
|
|
109
|
+
return {
|
|
110
|
+
id: "azure-ad-b2c",
|
|
111
|
+
name: "Azure AD B2C",
|
|
112
|
+
type: "oidc",
|
|
113
|
+
profile(profile) {
|
|
114
|
+
return {
|
|
115
|
+
id: profile.sub,
|
|
116
|
+
name: profile.name ?? profile.preferred_username,
|
|
117
|
+
email: profile?.emails?.[0],
|
|
118
|
+
image: null,
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
style: { text: "#fff", bg: "#0072c6" },
|
|
122
|
+
options,
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
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, {
|
|
12
|
+
MicrosoftEntraIDProfile,
|
|
13
|
+
} from "./microsoft-entra-id.js"
|
|
14
|
+
|
|
15
|
+
export type AzureADProfile = MicrosoftEntraIDProfile
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated
|
|
19
|
+
* Azure Active Directory has been renamed to [Microsoft Entra ID](/getting-started/providers/microsoft-entra-id).
|
|
20
|
+
* Import this provider from the `providers/microsoft-entra-id` submodule instead of `providers/azure-ad`.
|
|
21
|
+
*/
|
|
22
|
+
export default function AzureAD(
|
|
23
|
+
config: Parameters<typeof MicrosoftEntraID>[0]
|
|
24
|
+
): ReturnType<typeof MicrosoftEntraID> {
|
|
25
|
+
return {
|
|
26
|
+
...MicrosoftEntraID(config),
|
|
27
|
+
id: "azure-ad",
|
|
28
|
+
name: "Azure Active Directory",
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
2
|
+
|
|
3
|
+
/** @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) */
|
|
4
|
+
export interface AzureDevOpsProfile extends Record<string, any> {
|
|
5
|
+
id: string
|
|
6
|
+
displayName: string
|
|
7
|
+
emailAddress: string
|
|
8
|
+
coreAttributes: { Avatar: { value: { value: string } } }
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @deprecated
|
|
14
|
+
* 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.
|
|
15
|
+
*
|
|
16
|
+
* ## Documentation
|
|
17
|
+
*
|
|
18
|
+
* [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])
|
|
19
|
+
*
|
|
20
|
+
* ## Configuration
|
|
21
|
+
*
|
|
22
|
+
* ### Register application
|
|
23
|
+
*
|
|
24
|
+
* :::tip
|
|
25
|
+
* [`https://app.vsaex.visualstudio.com/app/register`](https://app.vsaex.visualstudio.com/app/register)
|
|
26
|
+
* :::
|
|
27
|
+
*
|
|
28
|
+
* Provide the required details:
|
|
29
|
+
*
|
|
30
|
+
* - Company name
|
|
31
|
+
* - Application name
|
|
32
|
+
* - Application website
|
|
33
|
+
* - Authorization callback URL
|
|
34
|
+
* - `https://example.com/api/auth/callback/azure-devops` for production
|
|
35
|
+
* - `https://localhost/api/auth/callback/azure-devops` for development
|
|
36
|
+
* - Authorized scopes
|
|
37
|
+
* - Required minimum is `User profile (read)`
|
|
38
|
+
*
|
|
39
|
+
* Click ‘Create Application’
|
|
40
|
+
*
|
|
41
|
+
* :::warning
|
|
42
|
+
* You are required to use HTTPS even for the localhost
|
|
43
|
+
* :::
|
|
44
|
+
*
|
|
45
|
+
* :::warning
|
|
46
|
+
* You will have to delete and create a new application to change the scopes later
|
|
47
|
+
* :::
|
|
48
|
+
*
|
|
49
|
+
* The following data is relevant for the next step:
|
|
50
|
+
*
|
|
51
|
+
* - App ID
|
|
52
|
+
* - Client Secret (after clicking the ‘Show’ button, ignore App Secret entry above it)
|
|
53
|
+
* - Authorized Scopes
|
|
54
|
+
*
|
|
55
|
+
* ### Set up the environment variables
|
|
56
|
+
*
|
|
57
|
+
* In `.env.local` create the following entries:
|
|
58
|
+
*
|
|
59
|
+
* ```
|
|
60
|
+
* AZURE_DEVOPS_APP_ID=<copy App ID value here>
|
|
61
|
+
* AZURE_DEVOPS_CLIENT_SECRET=<copy generated client secret value here>
|
|
62
|
+
* AZURE_DEVOPS_SCOPE=<copy space separated Authorized Scopes list here>
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* ## Example
|
|
66
|
+
*
|
|
67
|
+
* ```ts
|
|
68
|
+
* import AzureDevOps from "@auth/core/providers/azure-devops"
|
|
69
|
+
* ...
|
|
70
|
+
* providers: [
|
|
71
|
+
* AzureDevOps({
|
|
72
|
+
* clientId: process.env.AZURE_DEVOPS_APP_ID,
|
|
73
|
+
* clientSecret: process.env.AZURE_DEVOPS_CLIENT_SECRET,
|
|
74
|
+
* scope: process.env.AZURE_DEVOPS_SCOPE,
|
|
75
|
+
* }),
|
|
76
|
+
* ]
|
|
77
|
+
* ...
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* ### Refresh token rotation
|
|
81
|
+
*
|
|
82
|
+
* Use the [main guide](/guides/basics/refresh-token-rotation) as your starting point with the following considerations:
|
|
83
|
+
*
|
|
84
|
+
* ```ts
|
|
85
|
+
* async jwt({ token, user, account }) {
|
|
86
|
+
* ...
|
|
87
|
+
* // The token has an absolute expiration time
|
|
88
|
+
* const accessTokenExpires = account.expires_at * 1000
|
|
89
|
+
* ...
|
|
90
|
+
* }
|
|
91
|
+
*
|
|
92
|
+
* async function refreshAccessToken(token) {
|
|
93
|
+
* ...
|
|
94
|
+
* const response = await fetch(
|
|
95
|
+
* "https://app.vssps.visualstudio.com/oauth2/token",
|
|
96
|
+
* {
|
|
97
|
+
* headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
98
|
+
* method: "POST",
|
|
99
|
+
* body: new URLSearchParams({
|
|
100
|
+
* client_assertion_type:
|
|
101
|
+
* "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
|
|
102
|
+
* client_assertion: process.env.AZURE_DEVOPS_CLIENT_SECRET,
|
|
103
|
+
* grant_type: "refresh_token",
|
|
104
|
+
* assertion: token.refreshToken,
|
|
105
|
+
* redirect_uri:
|
|
106
|
+
* process.env.NEXTAUTH_URL + "/api/auth/callback/azure-devops",
|
|
107
|
+
* }),
|
|
108
|
+
* }
|
|
109
|
+
* )
|
|
110
|
+
* ...
|
|
111
|
+
* // The refreshed token comes with a relative expiration time
|
|
112
|
+
* const accessTokenExpires = Date.now() + newToken.expires_in * 1000
|
|
113
|
+
* ...
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export default function AzureDevOpsProvider<P extends AzureDevOpsProfile>(
|
|
118
|
+
options: OAuthUserConfig<P> & {
|
|
119
|
+
/**
|
|
120
|
+
* https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#scopes
|
|
121
|
+
* @default vso.profile
|
|
122
|
+
*/
|
|
123
|
+
scope?: string
|
|
124
|
+
}
|
|
125
|
+
): OAuthConfig<P> {
|
|
126
|
+
const scope = options.scope ?? "vso.profile"
|
|
127
|
+
const tokenEndpointUrl = "https://app.vssps.visualstudio.com/oauth2/authorize"
|
|
128
|
+
const userInfoEndpointUrl =
|
|
129
|
+
"https://app.vssps.visualstudio.com/_apis/profile/profiles/me?details=true&coreAttributes=Avatar&api-version=6.0"
|
|
130
|
+
|
|
131
|
+
return {
|
|
132
|
+
id: "azure-devops",
|
|
133
|
+
name: "Azure DevOps",
|
|
134
|
+
type: "oauth",
|
|
135
|
+
|
|
136
|
+
authorization: {
|
|
137
|
+
url: "https://app.vssps.visualstudio.com/oauth2/authorize",
|
|
138
|
+
params: { response_type: "Assertion", scope },
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
token: {
|
|
142
|
+
url: tokenEndpointUrl,
|
|
143
|
+
async request(context) {
|
|
144
|
+
const response = await fetch(tokenEndpointUrl, {
|
|
145
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
146
|
+
method: "POST",
|
|
147
|
+
body: new URLSearchParams({
|
|
148
|
+
client_assertion_type:
|
|
149
|
+
"urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
|
|
150
|
+
client_assertion: context.provider.clientSecret as string,
|
|
151
|
+
grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
|
|
152
|
+
assertion: context.params.code as string,
|
|
153
|
+
redirect_uri: context.provider.callbackUrl,
|
|
154
|
+
}),
|
|
155
|
+
})
|
|
156
|
+
return { tokens: await response.json() }
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
userinfo: {
|
|
161
|
+
url: userInfoEndpointUrl,
|
|
162
|
+
async request(context) {
|
|
163
|
+
const accessToken = context.tokens.access_token as string
|
|
164
|
+
const response = await fetch(userInfoEndpointUrl, {
|
|
165
|
+
headers: {
|
|
166
|
+
Authorization: `Bearer ${accessToken}`,
|
|
167
|
+
},
|
|
168
|
+
})
|
|
169
|
+
return response.json()
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
profile(profile) {
|
|
174
|
+
return {
|
|
175
|
+
id: profile.id,
|
|
176
|
+
name: profile.displayName,
|
|
177
|
+
email: profile.emailAddress,
|
|
178
|
+
image: `data:image/jpeg;base64,${profile.coreAttributes.Avatar.value.value}`,
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
|
|
182
|
+
options,
|
|
183
|
+
}
|
|
184
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{display: "flex", justifyContent: "space-between", alignItems: "center"}}>
|
|
3
|
+
* <span style={{fontSize: "1.35rem" }}>
|
|
4
|
+
* Built-in sign in with <b>BankID Norway</b> integration.
|
|
5
|
+
* </span>
|
|
6
|
+
* <a href="https://bankid.no" style={{backgroundColor: "black", padding: "12px", borderRadius: "100%" }}>
|
|
7
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/bankid-no.svg" width="24"/>
|
|
8
|
+
* </a>
|
|
9
|
+
* </div>
|
|
10
|
+
*
|
|
11
|
+
* @module providers/bankid-no
|
|
12
|
+
*/
|
|
13
|
+
import type { OIDCConfig, OIDCUserConfig } from "./index.js"
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @see [Core conepts - ID Token](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/core-concepts/id-token)
|
|
17
|
+
* @see [userinfo](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/userinfo)
|
|
18
|
+
*/
|
|
19
|
+
export interface BankIDNorwayProfile {
|
|
20
|
+
exp: number
|
|
21
|
+
iat: number
|
|
22
|
+
/** Epoc time */
|
|
23
|
+
auth_time: number
|
|
24
|
+
jti: string
|
|
25
|
+
iss: string
|
|
26
|
+
/** Always client_id */
|
|
27
|
+
aud: string
|
|
28
|
+
sub: string
|
|
29
|
+
typ: "ID"
|
|
30
|
+
/** Equals client_id */
|
|
31
|
+
azp: string
|
|
32
|
+
session_state: string
|
|
33
|
+
at_hash: string
|
|
34
|
+
name: string
|
|
35
|
+
given_name: string
|
|
36
|
+
family_name: string
|
|
37
|
+
birthdate: string
|
|
38
|
+
updated_at: number
|
|
39
|
+
/**
|
|
40
|
+
* Uniform Resource Name for [IDP option](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/core-concepts/identity-providers) being used,
|
|
41
|
+
* including Level of Assurance (LoA).
|
|
42
|
+
* @example
|
|
43
|
+
* ```
|
|
44
|
+
* urn:bankid:bid;LOA=4
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
acr: string
|
|
48
|
+
sid: string
|
|
49
|
+
/**
|
|
50
|
+
* Name of [IDP option](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/core-concepts/identity-providers) being used to authenticate the end-user.
|
|
51
|
+
* If the end-user is subject to authentication step-up,
|
|
52
|
+
* note that this value may differ from any `amr` value specified
|
|
53
|
+
* in the `login_hint` parameter of the [authorize](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/authorize) endpoint.
|
|
54
|
+
*/
|
|
55
|
+
amr: "BID" | "BIM" | "BIS"
|
|
56
|
+
/** Personal Identifier (PID) / Serial Number) from associated BankID certificate. */
|
|
57
|
+
bankid_altsub: string
|
|
58
|
+
/**
|
|
59
|
+
* In case of BID or BIM, the issuer of the end user certificate is returned.
|
|
60
|
+
* @example
|
|
61
|
+
* ```
|
|
62
|
+
* CN=BankID Bankenes ID-tjeneste Bank CA 2,
|
|
63
|
+
* OU=988477052,
|
|
64
|
+
* O=Bankenes ID-tjeneste AS,*
|
|
65
|
+
* C=NO;OrginatorId=9775;OriginatorName=Gjensidige Bank RA 1
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
originator: string
|
|
69
|
+
additionalCertInfo: {
|
|
70
|
+
certValidFrom: number
|
|
71
|
+
serialNumber: string
|
|
72
|
+
keyAlgorithm: string
|
|
73
|
+
keySize: string
|
|
74
|
+
policyOid: string
|
|
75
|
+
certQualified: boolean
|
|
76
|
+
certValidTo: number
|
|
77
|
+
versionNumber: string
|
|
78
|
+
subjectName: string
|
|
79
|
+
}
|
|
80
|
+
/** Currently used as an input parameter for the [securityData](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/securitydata) endpoint of the [Fraud Data](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/advanced-topics/fraud-data) service */
|
|
81
|
+
tid: string
|
|
82
|
+
/** Only returned from the `userinfo_endpoint` */
|
|
83
|
+
email?: string
|
|
84
|
+
/**
|
|
85
|
+
* [Norwegian National Identity Number (fødselsnummer)](https://www.skatteetaten.no/en/person/foreign/norwegian-identification-number/national-identity-number). It can be an alternative to `sub`.
|
|
86
|
+
* Requires `nnin_altsub` scope at the [authorize](https://confluence.bankidnorge.no/confluence/pdoidcl/technical-documentation/api/authorize) endpoint.
|
|
87
|
+
* @example
|
|
88
|
+
* ```
|
|
89
|
+
* 181266*****
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
nnin_altsub?: string
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* ### Setup
|
|
97
|
+
*
|
|
98
|
+
* #### Callback URL
|
|
99
|
+
* ```
|
|
100
|
+
* https://example.com/api/auth/callback/bankid-no
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* #### Configuration
|
|
104
|
+
* ```ts
|
|
105
|
+
* import { Auth } from "@auth/core"
|
|
106
|
+
* import BankIDNorge from "@auth/core/providers/bankid-no"
|
|
107
|
+
*
|
|
108
|
+
* const request = new Request(origin)
|
|
109
|
+
* const response = await Auth(request, {
|
|
110
|
+
* providers: [
|
|
111
|
+
* Auth0({
|
|
112
|
+
* clientId: AUTH_BANKID_NO_ID,
|
|
113
|
+
* clientSecret: AUTH_BANKID_NO_SECRET,
|
|
114
|
+
* }),
|
|
115
|
+
* ],
|
|
116
|
+
* })
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* ### Resources
|
|
120
|
+
*
|
|
121
|
+
* - [OpenID Connect Provider from BankID](https://confluence.bankidnorge.no/confluence/pdoidcl)
|
|
122
|
+
*
|
|
123
|
+
* ### Notes
|
|
124
|
+
*
|
|
125
|
+
* The BankID Norge provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/bankid-no.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
126
|
+
*
|
|
127
|
+
* ## Help
|
|
128
|
+
*
|
|
129
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
130
|
+
*
|
|
131
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
132
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
133
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
134
|
+
*/
|
|
135
|
+
export default function BankIDNorway(
|
|
136
|
+
config: OIDCUserConfig<BankIDNorwayProfile>
|
|
137
|
+
): OIDCConfig<BankIDNorwayProfile> {
|
|
138
|
+
return {
|
|
139
|
+
id: "bankid-no",
|
|
140
|
+
name: "BankID Norge",
|
|
141
|
+
type: "oidc",
|
|
142
|
+
issuer: "https://auth.bankid.no/auth/realms/prod",
|
|
143
|
+
client: {
|
|
144
|
+
token_endpoint_auth_method: "client_secret_post",
|
|
145
|
+
userinfo_signed_response_alg: "RS256",
|
|
146
|
+
},
|
|
147
|
+
idToken: false,
|
|
148
|
+
authorization: { params: { ui_locales: "no", login_hint: "BIS" } },
|
|
149
|
+
profile(profile) {
|
|
150
|
+
return {
|
|
151
|
+
id: profile.sub,
|
|
152
|
+
name: profile.name,
|
|
153
|
+
email: profile.email ?? null,
|
|
154
|
+
image: null,
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
checks: ["pkce", "state", "nonce"],
|
|
158
|
+
style: { text: "#fff", bg: "#39134c" },
|
|
159
|
+
options: config,
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -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>Battle.net</b> integration.</span>
|
|
4
|
+
* <a href="https://Battle.net/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/battlenet.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/battlenet
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export interface BattleNetProfile extends Record<string, any> {
|
|
14
|
+
sub: string
|
|
15
|
+
battle_tag: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** See the [available regions](https://develop.battle.net/documentation/guides/regionality-and-apis) */
|
|
19
|
+
export type BattleNetIssuer =
|
|
20
|
+
| "https://oauth.battle.net"
|
|
21
|
+
| "https://oauth.battlenet.com.cn"
|
|
22
|
+
| "https://www.battlenet.com.cn/oauth"
|
|
23
|
+
| `https://${"us" | "eu" | "kr" | "tw"}.battle.net/oauth`
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Add Battle.net login to your page.
|
|
27
|
+
*
|
|
28
|
+
* ### Setup
|
|
29
|
+
*
|
|
30
|
+
* #### Callback URL
|
|
31
|
+
* ```
|
|
32
|
+
* https://example.com/api/auth/callback/battlenet
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* #### Configuration
|
|
36
|
+
*```ts
|
|
37
|
+
* import { Auth } from "@auth/core"
|
|
38
|
+
* import BattleNet from "@auth/core/providers/battlenet"
|
|
39
|
+
*
|
|
40
|
+
* const request = new Request(origin)
|
|
41
|
+
* const response = await Auth(request, {
|
|
42
|
+
* providers: [
|
|
43
|
+
* BattleNet({
|
|
44
|
+
* clientId: BATTLENET_CLIENT_ID,
|
|
45
|
+
* clientSecret: BATTLENET_CLIENT_SECRET,
|
|
46
|
+
* issuer: BATTLENET_ISSUER,
|
|
47
|
+
* }),
|
|
48
|
+
* ],
|
|
49
|
+
* })
|
|
50
|
+
* ```
|
|
51
|
+
* issuer must be one of these values, based on the available regions:
|
|
52
|
+
* ```
|
|
53
|
+
* type BattleNetIssuer =
|
|
54
|
+
* | "https://oauth.battle.net"
|
|
55
|
+
* | "https://oauth.battlenet.com.cn"
|
|
56
|
+
* | "https://www.battlenet.com.cn/oauth"
|
|
57
|
+
* | "https://us.battle.net/oauth"
|
|
58
|
+
* | "https://eu.battle.net/oauth"
|
|
59
|
+
* | "https://kr.battle.net/oauth"
|
|
60
|
+
* | "https://tw.battle.net/oauth"
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* ### Resources
|
|
64
|
+
*
|
|
65
|
+
* - [BattleNet OAuth documentation](https://develop.battle.net/documentation/guides/using-oauth)
|
|
66
|
+
*
|
|
67
|
+
* ### Notes
|
|
68
|
+
*
|
|
69
|
+
* By default, Auth.js assumes that the BattleNet provider is
|
|
70
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
71
|
+
*
|
|
72
|
+
* :::tip
|
|
73
|
+
*
|
|
74
|
+
* The BattleNet provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/battlenet.ts).
|
|
75
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
76
|
+
*
|
|
77
|
+
* :::
|
|
78
|
+
*
|
|
79
|
+
* :::info **Disclaimer**
|
|
80
|
+
*
|
|
81
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
82
|
+
*
|
|
83
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
84
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
85
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
86
|
+
*
|
|
87
|
+
* :::
|
|
88
|
+
*/
|
|
89
|
+
export default function BattleNet<P extends BattleNetProfile>(
|
|
90
|
+
options: OAuthUserConfig<P> & { issuer: BattleNetIssuer }
|
|
91
|
+
): OAuthConfig<P> {
|
|
92
|
+
return {
|
|
93
|
+
id: "battlenet",
|
|
94
|
+
name: "Battle.net",
|
|
95
|
+
type: "oidc",
|
|
96
|
+
profile(profile) {
|
|
97
|
+
return {
|
|
98
|
+
id: profile.sub,
|
|
99
|
+
name: profile.battle_tag,
|
|
100
|
+
email: null,
|
|
101
|
+
image: null,
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
style: { bg: "#148eff", text: "#fff" },
|
|
105
|
+
options,
|
|
106
|
+
}
|
|
107
|
+
}
|