@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,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>Webex</b> integration.</span>
|
|
4
|
+
* <a href="https://webex.com">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/webex.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/webex
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The returned user profile from Webex when using the profile callback.
|
|
15
|
+
*
|
|
16
|
+
* Please refer to {@link https://developer.webex.com/docs/api/v1/people/get-my-own-details People - Get My Own Details}
|
|
17
|
+
* on Webex Developer portal for additional fields. Returned fields may vary depending on the user's role, the OAuth
|
|
18
|
+
* integration's scope, and the organization the OAuth integration belongs to.
|
|
19
|
+
*/
|
|
20
|
+
export interface WebexProfile extends Record<string, any> {
|
|
21
|
+
id: string
|
|
22
|
+
emails: string[]
|
|
23
|
+
displayName?: string
|
|
24
|
+
avatar?: string
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Add Webex login to your page.
|
|
29
|
+
*
|
|
30
|
+
* ### Setup
|
|
31
|
+
*
|
|
32
|
+
* #### Callback URL
|
|
33
|
+
* ```
|
|
34
|
+
* https://example.com/api/auth/callback/webex
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* #### Configuration
|
|
38
|
+
*```ts
|
|
39
|
+
* import { Auth } from "@auth/core"
|
|
40
|
+
* import Webex from "@auth/core/providers/webex"
|
|
41
|
+
*
|
|
42
|
+
* const request = new Request(origin)
|
|
43
|
+
* const response = await Auth(request, {
|
|
44
|
+
* providers: [
|
|
45
|
+
* Webex({ clientId: WEBEX_CLIENT_ID, clientSecret: WEBEX_CLIENT_SECRET }),
|
|
46
|
+
* ],
|
|
47
|
+
* })
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* ### Resources
|
|
51
|
+
*
|
|
52
|
+
* - [Webex OAuth 2.0 Integration Guide](https://developer.webex.com/docs/integrations)
|
|
53
|
+
* - [Login with Webex](https://developer.webex.com/docs/login-with-webex)
|
|
54
|
+
*
|
|
55
|
+
* ### Notes
|
|
56
|
+
*
|
|
57
|
+
* By default, Auth.js assumes that the Webex provider is
|
|
58
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
59
|
+
*
|
|
60
|
+
* :::tip
|
|
61
|
+
*
|
|
62
|
+
* The Webex provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/webex.ts).
|
|
63
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
64
|
+
*
|
|
65
|
+
* :::
|
|
66
|
+
*
|
|
67
|
+
* :::info **Disclaimer**
|
|
68
|
+
*
|
|
69
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
70
|
+
*
|
|
71
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
72
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
73
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
74
|
+
*
|
|
75
|
+
* :::
|
|
76
|
+
*/
|
|
77
|
+
export default function Webex<P extends WebexProfile>(
|
|
78
|
+
config: OAuthUserConfig<P> & { apiBaseUrl?: string }
|
|
79
|
+
): OAuthConfig<P> {
|
|
80
|
+
const apiBaseUrl = config?.apiBaseUrl ?? "https://webexapis.com/v1"
|
|
81
|
+
|
|
82
|
+
return {
|
|
83
|
+
id: "webex",
|
|
84
|
+
name: "Webex",
|
|
85
|
+
type: "oauth",
|
|
86
|
+
authorization: {
|
|
87
|
+
url: `${apiBaseUrl}/authorize`,
|
|
88
|
+
params: { scope: "spark:kms spark:people_read" },
|
|
89
|
+
},
|
|
90
|
+
token: `${apiBaseUrl}/access_token`,
|
|
91
|
+
userinfo: `${apiBaseUrl}/people/me`,
|
|
92
|
+
profile(profile) {
|
|
93
|
+
return {
|
|
94
|
+
id: profile.id,
|
|
95
|
+
email: profile.emails[0],
|
|
96
|
+
name: profile.displayName,
|
|
97
|
+
image: profile.avatar,
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
options: config,
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#24292f", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>WeChat</b> integration.</span>
|
|
4
|
+
* <a href="https://www.wechat.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/wechat.svg" height="48" width="48"/>
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/wechat
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/** @see [Get the authenticated user](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Authorized_Interface_Calling_UnionID.html) */
|
|
14
|
+
export interface WeChatProfile {
|
|
15
|
+
openid: string
|
|
16
|
+
nickname: string
|
|
17
|
+
sex: number
|
|
18
|
+
province: string
|
|
19
|
+
city: string
|
|
20
|
+
country: string
|
|
21
|
+
headimgurl: string
|
|
22
|
+
privilege: string[]
|
|
23
|
+
unionid: string
|
|
24
|
+
[claim: string]: unknown
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Add WeChat login to your page and make requests to [WeChat APIs](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Authorized_Interface_Calling_UnionID.html).
|
|
29
|
+
*
|
|
30
|
+
* ### Setup
|
|
31
|
+
*
|
|
32
|
+
* #### Callback URL
|
|
33
|
+
* ```
|
|
34
|
+
* https://example.com/api/auth/callback/wechat
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* #### Configuration
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { Auth } from "@auth/core"
|
|
40
|
+
* import WeChat from "@auth/core/providers/wechat"
|
|
41
|
+
*
|
|
42
|
+
* const request = new Request(origin)
|
|
43
|
+
* const response = await Auth(request, {
|
|
44
|
+
* providers: [WeChat({
|
|
45
|
+
* clientId: AUTH_WECHAT_APP_ID,
|
|
46
|
+
* clientSecret: AUTH_WECHAT_APP_SECRET,
|
|
47
|
+
* platformType: "OfficialAccount",
|
|
48
|
+
* })],
|
|
49
|
+
* })
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* ### Resources
|
|
53
|
+
*
|
|
54
|
+
* - [WeChat Official Account](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html)
|
|
55
|
+
* - [WeChat Official Account - Webpage Authorization](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html)
|
|
56
|
+
* - [WeChat Official Account Test Account](https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)
|
|
57
|
+
* - [WeChat WebsiteApp Login](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html)
|
|
58
|
+
* - [使用微信测试账号对网页进行授权](https://cloud.tencent.com/developer/article/1703167)
|
|
59
|
+
*
|
|
60
|
+
* :::tip
|
|
61
|
+
*
|
|
62
|
+
* The WeChat provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wechat.ts).
|
|
63
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/providers/custom-provider#override-default-options).
|
|
64
|
+
*
|
|
65
|
+
* :::
|
|
66
|
+
*
|
|
67
|
+
* :::info **Disclaimer**
|
|
68
|
+
*
|
|
69
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
70
|
+
*
|
|
71
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
72
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
73
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
74
|
+
*
|
|
75
|
+
* :::
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
export default function WeChat(
|
|
79
|
+
options: OAuthUserConfig<WeChatProfile> & {
|
|
80
|
+
platformType?: "OfficialAccount" | "WebsiteApp"
|
|
81
|
+
}
|
|
82
|
+
): OAuthConfig<WeChatProfile> {
|
|
83
|
+
const { clientId, clientSecret, platformType = "OfficialAccount" } = options
|
|
84
|
+
|
|
85
|
+
return {
|
|
86
|
+
id: "wechat",
|
|
87
|
+
name: "WeChat",
|
|
88
|
+
type: "oauth",
|
|
89
|
+
style: { logo: "/wechat.svg", bg: "#fff", text: "#000" },
|
|
90
|
+
checks: ["state"],
|
|
91
|
+
authorization: {
|
|
92
|
+
url:
|
|
93
|
+
platformType === "OfficialAccount"
|
|
94
|
+
? "https://open.weixin.qq.com/connect/oauth2/authorize"
|
|
95
|
+
: "https://open.weixin.qq.com/connect/qrconnect",
|
|
96
|
+
params: {
|
|
97
|
+
appid: clientId,
|
|
98
|
+
scope:
|
|
99
|
+
platformType === "OfficialAccount"
|
|
100
|
+
? "snsapi_userinfo"
|
|
101
|
+
: "snsapi_login",
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
token: {
|
|
105
|
+
url: "https://api.weixin.qq.com/sns/oauth2/access_token",
|
|
106
|
+
params: { appid: clientId, secret: clientSecret },
|
|
107
|
+
async conform(response) {
|
|
108
|
+
const data = await response.json()
|
|
109
|
+
if (data.token_type === "bearer") {
|
|
110
|
+
console.warn(
|
|
111
|
+
"token_type is 'bearer'. Redundant workaround, please open an issue."
|
|
112
|
+
)
|
|
113
|
+
return response
|
|
114
|
+
}
|
|
115
|
+
return Response.json({ ...data, token_type: "bearer" }, response)
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
userinfo: {
|
|
119
|
+
url: "https://api.weixin.qq.com/sns/userinfo",
|
|
120
|
+
async request({ tokens, provider }) {
|
|
121
|
+
if (!provider.userinfo) return
|
|
122
|
+
|
|
123
|
+
const url = new URL(provider.userinfo.url)
|
|
124
|
+
url.searchParams.set("access_token", tokens.access_token!)
|
|
125
|
+
url.searchParams.set("openid", String(tokens.openid))
|
|
126
|
+
url.searchParams.set("lang", "zh_CN")
|
|
127
|
+
const response = await fetch(url)
|
|
128
|
+
return response.json()
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
profile(profile) {
|
|
132
|
+
return {
|
|
133
|
+
id: profile.unionid,
|
|
134
|
+
name: profile.nickname,
|
|
135
|
+
email: null,
|
|
136
|
+
image: profile.headimgurl,
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
options,
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b> Wikimedia</b> integration.</span>
|
|
4
|
+
* <a href="https://mediawiki.org/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/wikimedia.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/wikimedia
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
export type WikimediaGroup =
|
|
14
|
+
| "*"
|
|
15
|
+
| "user"
|
|
16
|
+
| "autoconfirmed"
|
|
17
|
+
| "extendedconfirmed"
|
|
18
|
+
| "bot"
|
|
19
|
+
| "sysop"
|
|
20
|
+
| "bureaucrat"
|
|
21
|
+
| "steward"
|
|
22
|
+
| "accountcreator"
|
|
23
|
+
| "import"
|
|
24
|
+
| "transwiki"
|
|
25
|
+
| "ipblock-exempt"
|
|
26
|
+
| "oversight"
|
|
27
|
+
| "rollbacker"
|
|
28
|
+
| "propertycreator"
|
|
29
|
+
| "wikidata-staff"
|
|
30
|
+
| "flood"
|
|
31
|
+
| "translationadmin"
|
|
32
|
+
| "confirmed"
|
|
33
|
+
| "flow-bot"
|
|
34
|
+
| "checkuser"
|
|
35
|
+
|
|
36
|
+
export type WikimediaGrant =
|
|
37
|
+
| "basic"
|
|
38
|
+
| "blockusers"
|
|
39
|
+
| "checkuser"
|
|
40
|
+
| "createaccount"
|
|
41
|
+
| "delete"
|
|
42
|
+
| "editinterface"
|
|
43
|
+
| "editmycssjs"
|
|
44
|
+
| "editmyoptions"
|
|
45
|
+
| "editmywatchlist"
|
|
46
|
+
| "editpage"
|
|
47
|
+
| "editprotected"
|
|
48
|
+
| "editsiteconfig"
|
|
49
|
+
| "globalblock"
|
|
50
|
+
| "highvolume"
|
|
51
|
+
| "import"
|
|
52
|
+
| "mergehistory"
|
|
53
|
+
| "oath"
|
|
54
|
+
| "oversight"
|
|
55
|
+
| "patrol"
|
|
56
|
+
| "privateinfo"
|
|
57
|
+
| "protect"
|
|
58
|
+
| "rollback"
|
|
59
|
+
| "sendemail"
|
|
60
|
+
| "shortenurls"
|
|
61
|
+
| "uploadfile"
|
|
62
|
+
| "viewdeleted"
|
|
63
|
+
| "viewmywatchlist"
|
|
64
|
+
|
|
65
|
+
export type WikimediaRight =
|
|
66
|
+
| "abusefilter-log"
|
|
67
|
+
| "apihighlimits"
|
|
68
|
+
| "applychangetags"
|
|
69
|
+
| "autoconfirmed"
|
|
70
|
+
| "autopatrol"
|
|
71
|
+
| "autoreview"
|
|
72
|
+
| "bigdelete"
|
|
73
|
+
| "block"
|
|
74
|
+
| "blockemail"
|
|
75
|
+
| "bot"
|
|
76
|
+
| "browsearchive"
|
|
77
|
+
| "changetags"
|
|
78
|
+
| "checkuser"
|
|
79
|
+
| "checkuser-log"
|
|
80
|
+
| "createaccount"
|
|
81
|
+
| "createpage"
|
|
82
|
+
| "createpagemainns"
|
|
83
|
+
| "createtalk"
|
|
84
|
+
| "delete"
|
|
85
|
+
| "delete-redirect"
|
|
86
|
+
| "deletedhistory"
|
|
87
|
+
| "deletedtext"
|
|
88
|
+
| "deletelogentry"
|
|
89
|
+
| "deleterevision"
|
|
90
|
+
| "edit"
|
|
91
|
+
| "edit-legal"
|
|
92
|
+
| "editinterface"
|
|
93
|
+
| "editmyoptions"
|
|
94
|
+
| "editmyusercss"
|
|
95
|
+
| "editmyuserjs"
|
|
96
|
+
| "editmyuserjson"
|
|
97
|
+
| "editmywatchlist"
|
|
98
|
+
| "editprotected"
|
|
99
|
+
| "editsemiprotected"
|
|
100
|
+
| "editsitecss"
|
|
101
|
+
| "editsitejs"
|
|
102
|
+
| "editsitejson"
|
|
103
|
+
| "editusercss"
|
|
104
|
+
| "edituserjs"
|
|
105
|
+
| "edituserjson"
|
|
106
|
+
| "globalblock"
|
|
107
|
+
| "import"
|
|
108
|
+
| "importupload"
|
|
109
|
+
| "ipblock-exempt"
|
|
110
|
+
| "item-merge"
|
|
111
|
+
| "item-redirect"
|
|
112
|
+
| "item-term"
|
|
113
|
+
| "markbotedits"
|
|
114
|
+
| "massmessage"
|
|
115
|
+
| "mergehistory"
|
|
116
|
+
| "minoredit"
|
|
117
|
+
| "move"
|
|
118
|
+
| "move-subpages"
|
|
119
|
+
| "movefile"
|
|
120
|
+
| "movestable"
|
|
121
|
+
| "mwoauth-authonlyprivate"
|
|
122
|
+
| "nominornewtalk"
|
|
123
|
+
| "noratelimit"
|
|
124
|
+
| "nuke"
|
|
125
|
+
| "patrol"
|
|
126
|
+
| "patrolmarks"
|
|
127
|
+
| "property-create"
|
|
128
|
+
| "property-term"
|
|
129
|
+
| "protect"
|
|
130
|
+
| "purge"
|
|
131
|
+
| "read"
|
|
132
|
+
| "reupload"
|
|
133
|
+
| "reupload-own"
|
|
134
|
+
| "reupload-shared"
|
|
135
|
+
| "rollback"
|
|
136
|
+
| "sendemail"
|
|
137
|
+
| "skipcaptcha"
|
|
138
|
+
| "suppressionlog"
|
|
139
|
+
| "tboverride"
|
|
140
|
+
| "templateeditor"
|
|
141
|
+
| "torunblocked"
|
|
142
|
+
| "transcode-reset"
|
|
143
|
+
| "translate"
|
|
144
|
+
| "undelete"
|
|
145
|
+
| "unwatchedpages"
|
|
146
|
+
| "upload"
|
|
147
|
+
| "upload_by_url"
|
|
148
|
+
| "viewmywatchlist"
|
|
149
|
+
| "viewsuppressed"
|
|
150
|
+
| "writeapi"
|
|
151
|
+
|
|
152
|
+
export interface WikimediaProfile extends Record<string, any> {
|
|
153
|
+
sub: string
|
|
154
|
+
username: string
|
|
155
|
+
editcount: number
|
|
156
|
+
confirmed_email: boolean
|
|
157
|
+
blocked: boolean
|
|
158
|
+
registered: string
|
|
159
|
+
groups: WikimediaGroup[]
|
|
160
|
+
rights: WikimediaRight[]
|
|
161
|
+
grants: WikimediaGrant[]
|
|
162
|
+
realname: string
|
|
163
|
+
email: string
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Add Wikimedia login to your page.
|
|
168
|
+
*
|
|
169
|
+
* ### Setup
|
|
170
|
+
*
|
|
171
|
+
* #### Callback URL
|
|
172
|
+
* ```
|
|
173
|
+
* https://example.com/api/auth/callback/wikimedia
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* #### Configuration
|
|
177
|
+
*```ts
|
|
178
|
+
* import { Auth } from "@auth/core"
|
|
179
|
+
* import Wikimedia from "@auth/core/providers/wikimedia"
|
|
180
|
+
*
|
|
181
|
+
* const request = new Request(origin)
|
|
182
|
+
* const response = await Auth(request, {
|
|
183
|
+
* providers: [
|
|
184
|
+
* Wikimedia({
|
|
185
|
+
* clientId: WIKIMEDIA_CLIENT_ID,
|
|
186
|
+
* clientSecret: WIKIMEDIA_CLIENT_SECRET,
|
|
187
|
+
* }),
|
|
188
|
+
* ],
|
|
189
|
+
* })
|
|
190
|
+
* ```
|
|
191
|
+
*
|
|
192
|
+
* ### Resources
|
|
193
|
+
*
|
|
194
|
+
* - [Wikimedia OAuth documentation](https://www.mediawiki.org/wiki/Extension:OAuth)
|
|
195
|
+
*
|
|
196
|
+
* ## Configuration steps
|
|
197
|
+
* - Go to and accept the Consumer Registration doc: https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration
|
|
198
|
+
* - Request a new OAuth 2.0 consumer to get the `clientId` and `clientSecret`: https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration/propose/oauth2
|
|
199
|
+
* - Add the following redirect URL into the console: `http://<your-next-app-url>/api/auth/callback/wikimedia`
|
|
200
|
+
* - Do not check the box next to This consumer is only for __your username__
|
|
201
|
+
* - Unless you explicitly need a larger scope, feel free to select the radio button labelled User identity verification only - no ability to read pages or act on the users behalf.
|
|
202
|
+
*
|
|
203
|
+
* After registration, you can initially test your application only with your own Wikimedia account.
|
|
204
|
+
* You may have to wait several days for the application to be approved for it to be used by everyone.
|
|
205
|
+
*
|
|
206
|
+
* ### Notes
|
|
207
|
+
* This provider also supports all Wikimedia projects:
|
|
208
|
+
* - Wikipedia
|
|
209
|
+
* - Wikidata
|
|
210
|
+
* - Wikibooks
|
|
211
|
+
* - Wiktionary
|
|
212
|
+
* - etc..
|
|
213
|
+
*
|
|
214
|
+
* Please be aware that Wikimedia accounts do not have to have an associated email address. So you may want to add check if the user has an email address before allowing them to login.
|
|
215
|
+
*
|
|
216
|
+
* By default, Auth.js assumes that the Wikimedia provider is
|
|
217
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
218
|
+
*
|
|
219
|
+
* :::tip
|
|
220
|
+
*
|
|
221
|
+
* The Wikimedia provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wikimedia.ts).
|
|
222
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
223
|
+
*
|
|
224
|
+
* :::
|
|
225
|
+
*
|
|
226
|
+
* :::info **Disclaimer**
|
|
227
|
+
*
|
|
228
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
229
|
+
*
|
|
230
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
231
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
232
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
233
|
+
*
|
|
234
|
+
* :::
|
|
235
|
+
*/
|
|
236
|
+
export default function Wikimedia<P extends WikimediaProfile>(
|
|
237
|
+
options: OAuthUserConfig<P>
|
|
238
|
+
): OAuthConfig<P> {
|
|
239
|
+
return {
|
|
240
|
+
id: "wikimedia",
|
|
241
|
+
name: "Wikimedia",
|
|
242
|
+
type: "oauth",
|
|
243
|
+
token: "https://meta.wikimedia.org/w/rest.php/oauth2/access_token",
|
|
244
|
+
userinfo: "https://meta.wikimedia.org/w/rest.php/oauth2/resource/profile",
|
|
245
|
+
authorization:
|
|
246
|
+
"https://meta.wikimedia.org/w/rest.php/oauth2/authorize?scope=",
|
|
247
|
+
profile(profile) {
|
|
248
|
+
return {
|
|
249
|
+
id: profile.sub,
|
|
250
|
+
name: profile.username,
|
|
251
|
+
email: profile.email,
|
|
252
|
+
image: null,
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
style: { bg: "#000", text: "#fff" },
|
|
256
|
+
options,
|
|
257
|
+
}
|
|
258
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
|
|
3
|
+
* <span>Built-in <b>WordPress</b> integration.</span>
|
|
4
|
+
* <a href="https://wordpress.com/">
|
|
5
|
+
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/wordpress.svg" height="48" />
|
|
6
|
+
* </a>
|
|
7
|
+
* </div>
|
|
8
|
+
*
|
|
9
|
+
* @module providers/wordpress
|
|
10
|
+
*/
|
|
11
|
+
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Add WordPress login to your page.
|
|
15
|
+
*
|
|
16
|
+
* ### Setup
|
|
17
|
+
*
|
|
18
|
+
* #### Callback URL
|
|
19
|
+
* ```
|
|
20
|
+
* https://example.com/api/auth/callback/wordpress
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* #### Configuration
|
|
24
|
+
*```ts
|
|
25
|
+
* import { Auth } from "@auth/core"
|
|
26
|
+
* import WordPress from "@auth/core/providers/wordpress"
|
|
27
|
+
*
|
|
28
|
+
* const request = new Request(origin)
|
|
29
|
+
* const response = await Auth(request, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* WordPress({
|
|
32
|
+
* clientId: WORKPRESS_CLIENT_ID,
|
|
33
|
+
* clientSecret: WORKPRESS_CLIENT_SECRET,
|
|
34
|
+
* }),
|
|
35
|
+
* ],
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### Resources
|
|
40
|
+
*
|
|
41
|
+
* - [WordPress OAuth documentation](https://developer.wordpress.com/docs/oauth2/)
|
|
42
|
+
*
|
|
43
|
+
* ### Notes
|
|
44
|
+
*
|
|
45
|
+
* By default, Auth.js assumes that the WordPress provider is
|
|
46
|
+
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
|
|
47
|
+
*
|
|
48
|
+
* :::tip
|
|
49
|
+
*
|
|
50
|
+
* The WordPress provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wordpress.ts).
|
|
51
|
+
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
|
|
52
|
+
*
|
|
53
|
+
* :::
|
|
54
|
+
*
|
|
55
|
+
* :::info **Disclaimer**
|
|
56
|
+
*
|
|
57
|
+
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
|
|
58
|
+
*
|
|
59
|
+
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
|
|
60
|
+
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
|
|
61
|
+
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
|
|
62
|
+
*
|
|
63
|
+
* :::
|
|
64
|
+
*/
|
|
65
|
+
export default function WordPress(
|
|
66
|
+
config: OAuthUserConfig<Record<string, any>>
|
|
67
|
+
): OAuthConfig<Record<string, any>> {
|
|
68
|
+
return {
|
|
69
|
+
id: "wordpress",
|
|
70
|
+
name: "WordPress.com",
|
|
71
|
+
type: "oauth",
|
|
72
|
+
authorization:
|
|
73
|
+
"https://public-api.wordpress.com/oauth2/authorize?scope=auth",
|
|
74
|
+
token: "https://public-api.wordpress.com/oauth2/token",
|
|
75
|
+
userinfo: "https://public-api.wordpress.com/rest/v1/me",
|
|
76
|
+
profile(profile) {
|
|
77
|
+
return {
|
|
78
|
+
id: profile.ID,
|
|
79
|
+
name: profile.display_name,
|
|
80
|
+
email: profile.email,
|
|
81
|
+
image: profile.avatar_URL,
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
options: config,
|
|
85
|
+
}
|
|
86
|
+
}
|