@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.
Files changed (600) hide show
  1. package/README.md +24 -0
  2. package/adapters.d.ts +522 -0
  3. package/adapters.d.ts.map +1 -0
  4. package/adapters.js +170 -0
  5. package/errors.d.ts +429 -0
  6. package/errors.d.ts.map +1 -0
  7. package/errors.js +473 -0
  8. package/index.d.ts +547 -0
  9. package/index.d.ts.map +1 -0
  10. package/index.js +142 -0
  11. package/jwt.d.ts +132 -0
  12. package/jwt.d.ts.map +1 -0
  13. package/jwt.js +123 -0
  14. package/lib/actions/callback/handle-login.d.ts +35 -0
  15. package/lib/actions/callback/handle-login.d.ts.map +1 -0
  16. package/lib/actions/callback/handle-login.js +275 -0
  17. package/lib/actions/callback/index.d.ts +5 -0
  18. package/lib/actions/callback/index.d.ts.map +1 -0
  19. package/lib/actions/callback/index.js +409 -0
  20. package/lib/actions/callback/oauth/callback.d.ts +36 -0
  21. package/lib/actions/callback/oauth/callback.d.ts.map +1 -0
  22. package/lib/actions/callback/oauth/callback.js +248 -0
  23. package/lib/actions/callback/oauth/checks.d.ts +70 -0
  24. package/lib/actions/callback/oauth/checks.d.ts.map +1 -0
  25. package/lib/actions/callback/oauth/checks.js +188 -0
  26. package/lib/actions/callback/oauth/csrf-token.d.ts +33 -0
  27. package/lib/actions/callback/oauth/csrf-token.d.ts.map +1 -0
  28. package/lib/actions/callback/oauth/csrf-token.js +39 -0
  29. package/lib/actions/index.d.ts +6 -0
  30. package/lib/actions/index.d.ts.map +1 -0
  31. package/lib/actions/index.js +5 -0
  32. package/lib/actions/session.d.ts +5 -0
  33. package/lib/actions/session.d.ts.map +1 -0
  34. package/lib/actions/session.js +127 -0
  35. package/lib/actions/signin/authorization-url.d.ts +12 -0
  36. package/lib/actions/signin/authorization-url.d.ts.map +1 -0
  37. package/lib/actions/signin/authorization-url.js +94 -0
  38. package/lib/actions/signin/index.d.ts +4 -0
  39. package/lib/actions/signin/index.d.ts.map +1 -0
  40. package/lib/actions/signin/index.js +22 -0
  41. package/lib/actions/signin/send-token.d.ts +10 -0
  42. package/lib/actions/signin/send-token.d.ts.map +1 -0
  43. package/lib/actions/signin/send-token.js +98 -0
  44. package/lib/actions/signout.d.ts +11 -0
  45. package/lib/actions/signout.d.ts.map +1 -0
  46. package/lib/actions/signout.js +30 -0
  47. package/lib/actions/webauthn-options.d.ts +8 -0
  48. package/lib/actions/webauthn-options.d.ts.map +1 -0
  49. package/lib/actions/webauthn-options.js +60 -0
  50. package/lib/index.d.ts +2 -0
  51. package/lib/index.d.ts.map +1 -0
  52. package/lib/index.js +70 -0
  53. package/lib/init.d.ts +25 -0
  54. package/lib/init.d.ts.map +1 -0
  55. package/lib/init.js +172 -0
  56. package/lib/pages/error.d.ts +17 -0
  57. package/lib/pages/error.d.ts.map +1 -0
  58. package/lib/pages/error.js +40 -0
  59. package/lib/pages/index.d.ts +42 -0
  60. package/lib/pages/index.d.ts.map +1 -0
  61. package/lib/pages/index.js +136 -0
  62. package/lib/pages/signin.d.ts +10 -0
  63. package/lib/pages/signin.d.ts.map +1 -0
  64. package/lib/pages/signin.js +75 -0
  65. package/lib/pages/signout.d.ts +8 -0
  66. package/lib/pages/signout.d.ts.map +1 -0
  67. package/lib/pages/signout.js +17 -0
  68. package/lib/pages/styles.d.ts +3 -0
  69. package/lib/pages/styles.d.ts.map +1 -0
  70. package/lib/pages/styles.js +381 -0
  71. package/lib/pages/verify-request.d.ts +8 -0
  72. package/lib/pages/verify-request.d.ts.map +1 -0
  73. package/lib/pages/verify-request.js +11 -0
  74. package/lib/symbols.d.ts +50 -0
  75. package/lib/symbols.d.ts.map +1 -0
  76. package/lib/symbols.js +57 -0
  77. package/lib/utils/actions.d.ts +3 -0
  78. package/lib/utils/actions.d.ts.map +1 -0
  79. package/lib/utils/actions.js +14 -0
  80. package/lib/utils/assert.d.ts +14 -0
  81. package/lib/utils/assert.d.ts.map +1 -0
  82. package/lib/utils/assert.js +168 -0
  83. package/lib/utils/callback-url.d.ts +17 -0
  84. package/lib/utils/callback-url.d.ts.map +1 -0
  85. package/lib/utils/callback-url.js +27 -0
  86. package/lib/utils/cookie.d.ts +111 -0
  87. package/lib/utils/cookie.d.ts.map +1 -0
  88. package/lib/utils/cookie.js +205 -0
  89. package/lib/utils/date.d.ts +7 -0
  90. package/lib/utils/date.d.ts.map +1 -0
  91. package/lib/utils/date.js +8 -0
  92. package/lib/utils/email.d.ts +20 -0
  93. package/lib/utils/email.d.ts.map +1 -0
  94. package/lib/utils/email.js +57 -0
  95. package/lib/utils/env.d.ts +9 -0
  96. package/lib/utils/env.d.ts.map +1 -0
  97. package/lib/utils/env.js +96 -0
  98. package/lib/utils/logger.d.ts +18 -0
  99. package/lib/utils/logger.d.ts.map +1 -0
  100. package/lib/utils/logger.js +50 -0
  101. package/lib/utils/merge.d.ts +3 -0
  102. package/lib/utils/merge.d.ts.map +1 -0
  103. package/lib/utils/merge.js +23 -0
  104. package/lib/utils/providers.d.ts +19 -0
  105. package/lib/utils/providers.d.ts.map +1 -0
  106. package/lib/utils/providers.js +149 -0
  107. package/lib/utils/session.d.ts +7 -0
  108. package/lib/utils/session.d.ts.map +1 -0
  109. package/lib/utils/session.js +29 -0
  110. package/lib/utils/web.d.ts +10 -0
  111. package/lib/utils/web.d.ts.map +1 -0
  112. package/lib/utils/web.js +109 -0
  113. package/lib/utils/webauthn-client.d.ts +30 -0
  114. package/lib/utils/webauthn-client.d.ts.map +1 -0
  115. package/lib/utils/webauthn-client.js +197 -0
  116. package/lib/utils/webauthn-utils.d.ts +81 -0
  117. package/lib/utils/webauthn-utils.d.ts.map +1 -0
  118. package/lib/utils/webauthn-utils.js +343 -0
  119. package/lib/vendored/cookie.d.ts +120 -0
  120. package/lib/vendored/cookie.d.ts.map +1 -0
  121. package/lib/vendored/cookie.js +237 -0
  122. package/package.json +118 -0
  123. package/providers/42-school.d.ts +240 -0
  124. package/providers/42-school.d.ts.map +1 -0
  125. package/providers/42-school.js +78 -0
  126. package/providers/apple.d.ts +149 -0
  127. package/providers/apple.d.ts.map +1 -0
  128. package/providers/apple.js +104 -0
  129. package/providers/asgardeo.d.ts +102 -0
  130. package/providers/asgardeo.d.ts.map +1 -0
  131. package/providers/asgardeo.js +93 -0
  132. package/providers/atlassian.d.ts +94 -0
  133. package/providers/atlassian.d.ts.map +1 -0
  134. package/providers/atlassian.js +84 -0
  135. package/providers/auth0.d.ts +116 -0
  136. package/providers/auth0.d.ts.map +1 -0
  137. package/providers/auth0.js +49 -0
  138. package/providers/authentik.d.ts +90 -0
  139. package/providers/authentik.d.ts.map +1 -0
  140. package/providers/authentik.js +65 -0
  141. package/providers/azure-ad-b2c.d.ts +104 -0
  142. package/providers/azure-ad-b2c.d.ts.map +1 -0
  143. package/providers/azure-ad-b2c.js +100 -0
  144. package/providers/azure-ad.d.ts +19 -0
  145. package/providers/azure-ad.d.ts.map +1 -0
  146. package/providers/azure-ad.js +23 -0
  147. package/providers/azure-devops.d.ts +128 -0
  148. package/providers/azure-devops.d.ts.map +1 -0
  149. package/providers/azure-devops.js +158 -0
  150. package/providers/bankid-no.d.ts +134 -0
  151. package/providers/bankid-no.d.ts.map +1 -0
  152. package/providers/bankid-no.js +65 -0
  153. package/providers/battlenet.d.ts +85 -0
  154. package/providers/battlenet.d.ts.map +1 -0
  155. package/providers/battlenet.js +81 -0
  156. package/providers/beyondidentity.d.ts +77 -0
  157. package/providers/beyondidentity.d.ts.map +1 -0
  158. package/providers/beyondidentity.js +84 -0
  159. package/providers/bitbucket.d.ts +89 -0
  160. package/providers/bitbucket.d.ts.map +1 -0
  161. package/providers/bitbucket.js +92 -0
  162. package/providers/box.d.ts +63 -0
  163. package/providers/box.d.ts.map +1 -0
  164. package/providers/box.js +73 -0
  165. package/providers/boxyhq-saml.d.ts +121 -0
  166. package/providers/boxyhq-saml.d.ts.map +1 -0
  167. package/providers/boxyhq-saml.js +127 -0
  168. package/providers/bungie.d.ts +167 -0
  169. package/providers/bungie.d.ts.map +1 -0
  170. package/providers/bungie.js +174 -0
  171. package/providers/click-up.d.ts +75 -0
  172. package/providers/click-up.d.ts.map +1 -0
  173. package/providers/click-up.js +89 -0
  174. package/providers/cognito.d.ts +81 -0
  175. package/providers/cognito.d.ts.map +1 -0
  176. package/providers/cognito.js +73 -0
  177. package/providers/coinbase.d.ts +69 -0
  178. package/providers/coinbase.d.ts.map +1 -0
  179. package/providers/coinbase.js +78 -0
  180. package/providers/concept2.d.ts +81 -0
  181. package/providers/concept2.d.ts.map +1 -0
  182. package/providers/concept2.js +86 -0
  183. package/providers/credentials.d.ts +132 -0
  184. package/providers/credentials.d.ts.map +1 -0
  185. package/providers/credentials.js +74 -0
  186. package/providers/descope.d.ts +91 -0
  187. package/providers/descope.d.ts.map +1 -0
  188. package/providers/descope.js +78 -0
  189. package/providers/discord.d.ts +139 -0
  190. package/providers/discord.d.ts.map +1 -0
  191. package/providers/discord.js +86 -0
  192. package/providers/dribbble.d.ts +88 -0
  193. package/providers/dribbble.d.ts.map +1 -0
  194. package/providers/dribbble.js +85 -0
  195. package/providers/dropbox.d.ts +65 -0
  196. package/providers/dropbox.d.ts.map +1 -0
  197. package/providers/dropbox.js +88 -0
  198. package/providers/duende-identity-server6.d.ts +91 -0
  199. package/providers/duende-identity-server6.d.ts.map +1 -0
  200. package/providers/duende-identity-server6.js +80 -0
  201. package/providers/email.d.ts +41 -0
  202. package/providers/email.d.ts.map +1 -0
  203. package/providers/email.js +18 -0
  204. package/providers/eventbrite.d.ts +78 -0
  205. package/providers/eventbrite.d.ts.map +1 -0
  206. package/providers/eventbrite.js +88 -0
  207. package/providers/eveonline.d.ts +94 -0
  208. package/providers/eveonline.d.ts.map +1 -0
  209. package/providers/eveonline.js +92 -0
  210. package/providers/facebook.d.ts +84 -0
  211. package/providers/facebook.d.ts.map +1 -0
  212. package/providers/facebook.js +93 -0
  213. package/providers/faceit.d.ts +64 -0
  214. package/providers/faceit.d.ts.map +1 -0
  215. package/providers/faceit.js +74 -0
  216. package/providers/figma.d.ts +75 -0
  217. package/providers/figma.d.ts.map +1 -0
  218. package/providers/figma.js +81 -0
  219. package/providers/forwardemail.d.ts +4 -0
  220. package/providers/forwardemail.d.ts.map +1 -0
  221. package/providers/forwardemail.js +32 -0
  222. package/providers/foursquare.d.ts +71 -0
  223. package/providers/foursquare.d.ts.map +1 -0
  224. package/providers/foursquare.js +91 -0
  225. package/providers/freshbooks.d.ts +66 -0
  226. package/providers/freshbooks.d.ts.map +1 -0
  227. package/providers/freshbooks.js +76 -0
  228. package/providers/frontegg.d.ts +95 -0
  229. package/providers/frontegg.d.ts.map +1 -0
  230. package/providers/frontegg.js +88 -0
  231. package/providers/fusionauth.d.ts +279 -0
  232. package/providers/fusionauth.d.ts.map +1 -0
  233. package/providers/fusionauth.js +292 -0
  234. package/providers/github.d.ts +127 -0
  235. package/providers/github.d.ts.map +1 -0
  236. package/providers/github.js +115 -0
  237. package/providers/gitlab.d.ts +115 -0
  238. package/providers/gitlab.d.ts.map +1 -0
  239. package/providers/gitlab.js +75 -0
  240. package/providers/google.d.ts +138 -0
  241. package/providers/google.d.ts.map +1 -0
  242. package/providers/google.js +119 -0
  243. package/providers/hubspot.d.ts +76 -0
  244. package/providers/hubspot.d.ts.map +1 -0
  245. package/providers/hubspot.js +93 -0
  246. package/providers/huggingface.d.ts +216 -0
  247. package/providers/huggingface.d.ts.map +1 -0
  248. package/providers/huggingface.js +101 -0
  249. package/providers/identity-server4.d.ts +69 -0
  250. package/providers/identity-server4.d.ts.map +1 -0
  251. package/providers/identity-server4.js +64 -0
  252. package/providers/index.d.ts +61 -0
  253. package/providers/index.d.ts.map +1 -0
  254. package/providers/index.js +3 -0
  255. package/providers/instagram.d.ts +74 -0
  256. package/providers/instagram.d.ts.map +1 -0
  257. package/providers/instagram.js +87 -0
  258. package/providers/kakao.d.ts +148 -0
  259. package/providers/kakao.d.ts.map +1 -0
  260. package/providers/kakao.js +103 -0
  261. package/providers/keycloak.d.ts +100 -0
  262. package/providers/keycloak.d.ts.map +1 -0
  263. package/providers/keycloak.js +73 -0
  264. package/providers/kinde.d.ts +73 -0
  265. package/providers/kinde.d.ts.map +1 -0
  266. package/providers/kinde.js +51 -0
  267. package/providers/line.d.ts +83 -0
  268. package/providers/line.d.ts.map +1 -0
  269. package/providers/line.js +73 -0
  270. package/providers/linkedin.d.ts +77 -0
  271. package/providers/linkedin.d.ts.map +1 -0
  272. package/providers/linkedin.js +65 -0
  273. package/providers/logto.d.ts +98 -0
  274. package/providers/logto.d.ts.map +1 -0
  275. package/providers/logto.js +81 -0
  276. package/providers/loops.d.ts +40 -0
  277. package/providers/loops.d.ts.map +1 -0
  278. package/providers/loops.js +59 -0
  279. package/providers/mailchimp.d.ts +66 -0
  280. package/providers/mailchimp.d.ts.map +1 -0
  281. package/providers/mailchimp.js +76 -0
  282. package/providers/mailgun.d.ts +55 -0
  283. package/providers/mailgun.d.ts.map +1 -0
  284. package/providers/mailgun.js +74 -0
  285. package/providers/mailru.d.ts +63 -0
  286. package/providers/mailru.d.ts.map +1 -0
  287. package/providers/mailru.js +61 -0
  288. package/providers/mastodon.d.ts +90 -0
  289. package/providers/mastodon.d.ts.map +1 -0
  290. package/providers/mastodon.js +75 -0
  291. package/providers/mattermost.d.ts +132 -0
  292. package/providers/mattermost.d.ts.map +1 -0
  293. package/providers/mattermost.js +83 -0
  294. package/providers/medium.d.ts +68 -0
  295. package/providers/medium.d.ts.map +1 -0
  296. package/providers/medium.js +84 -0
  297. package/providers/microsoft-entra-id.d.ts +428 -0
  298. package/providers/microsoft-entra-id.d.ts.map +1 -0
  299. package/providers/microsoft-entra-id.js +156 -0
  300. package/providers/naver.d.ts +80 -0
  301. package/providers/naver.d.ts.map +1 -0
  302. package/providers/naver.js +79 -0
  303. package/providers/netlify.d.ts +66 -0
  304. package/providers/netlify.d.ts.map +1 -0
  305. package/providers/netlify.js +85 -0
  306. package/providers/netsuite.d.ts +189 -0
  307. package/providers/netsuite.d.ts.map +1 -0
  308. package/providers/netsuite.js +170 -0
  309. package/providers/nextcloud.d.ts +150 -0
  310. package/providers/nextcloud.d.ts.map +1 -0
  311. package/providers/nextcloud.js +99 -0
  312. package/providers/nodemailer.d.ts +27 -0
  313. package/providers/nodemailer.d.ts.map +1 -0
  314. package/providers/nodemailer.js +34 -0
  315. package/providers/notion.d.ts +99 -0
  316. package/providers/notion.d.ts.map +1 -0
  317. package/providers/notion.js +110 -0
  318. package/providers/oauth.d.ts +188 -0
  319. package/providers/oauth.d.ts.map +1 -0
  320. package/providers/oauth.js +1 -0
  321. package/providers/okta.d.ts +99 -0
  322. package/providers/okta.d.ts.map +1 -0
  323. package/providers/okta.js +63 -0
  324. package/providers/onelogin.d.ts +65 -0
  325. package/providers/onelogin.d.ts.map +1 -0
  326. package/providers/onelogin.js +61 -0
  327. package/providers/ory-hydra.d.ts +79 -0
  328. package/providers/ory-hydra.d.ts.map +1 -0
  329. package/providers/ory-hydra.js +67 -0
  330. package/providers/osso.d.ts +79 -0
  331. package/providers/osso.d.ts.map +1 -0
  332. package/providers/osso.js +77 -0
  333. package/providers/osu.d.ts +116 -0
  334. package/providers/osu.d.ts.map +1 -0
  335. package/providers/osu.js +75 -0
  336. package/providers/passage.d.ts +88 -0
  337. package/providers/passage.d.ts.map +1 -0
  338. package/providers/passage.js +75 -0
  339. package/providers/passkey.d.ts +65 -0
  340. package/providers/passkey.d.ts.map +1 -0
  341. package/providers/passkey.js +87 -0
  342. package/providers/patreon.d.ts +73 -0
  343. package/providers/patreon.d.ts.map +1 -0
  344. package/providers/patreon.js +77 -0
  345. package/providers/ping-id.d.ts +57 -0
  346. package/providers/ping-id.d.ts.map +1 -0
  347. package/providers/ping-id.js +40 -0
  348. package/providers/pinterest.d.ts +79 -0
  349. package/providers/pinterest.d.ts.map +1 -0
  350. package/providers/pinterest.js +85 -0
  351. package/providers/pipedrive.d.ts +99 -0
  352. package/providers/pipedrive.d.ts.map +1 -0
  353. package/providers/pipedrive.js +71 -0
  354. package/providers/postmark.d.ts +4 -0
  355. package/providers/postmark.d.ts.map +1 -0
  356. package/providers/postmark.js +36 -0
  357. package/providers/provider-types.d.ts +3 -0
  358. package/providers/provider-types.d.ts.map +1 -0
  359. package/providers/provider-types.js +1 -0
  360. package/providers/reddit.d.ts +88 -0
  361. package/providers/reddit.d.ts.map +1 -0
  362. package/providers/reddit.js +90 -0
  363. package/providers/resend.d.ts +4 -0
  364. package/providers/resend.d.ts.map +1 -0
  365. package/providers/resend.js +32 -0
  366. package/providers/roblox.d.ts +67 -0
  367. package/providers/roblox.d.ts.map +1 -0
  368. package/providers/roblox.js +53 -0
  369. package/providers/salesforce.d.ts +59 -0
  370. package/providers/salesforce.d.ts.map +1 -0
  371. package/providers/salesforce.js +52 -0
  372. package/providers/sendgrid.d.ts +4 -0
  373. package/providers/sendgrid.d.ts.map +1 -0
  374. package/providers/sendgrid.js +35 -0
  375. package/providers/simplelogin.d.ts +87 -0
  376. package/providers/simplelogin.d.ts.map +1 -0
  377. package/providers/simplelogin.js +83 -0
  378. package/providers/slack.d.ts +102 -0
  379. package/providers/slack.d.ts.map +1 -0
  380. package/providers/slack.js +69 -0
  381. package/providers/spotify.d.ts +75 -0
  382. package/providers/spotify.d.ts.map +1 -0
  383. package/providers/spotify.js +73 -0
  384. package/providers/strava.d.ts +68 -0
  385. package/providers/strava.d.ts.map +1 -0
  386. package/providers/strava.js +80 -0
  387. package/providers/threads.d.ts +108 -0
  388. package/providers/threads.d.ts.map +1 -0
  389. package/providers/threads.js +89 -0
  390. package/providers/tiktok.d.ts +248 -0
  391. package/providers/tiktok.d.ts.map +1 -0
  392. package/providers/tiktok.js +195 -0
  393. package/providers/todoist.d.ts +76 -0
  394. package/providers/todoist.d.ts.map +1 -0
  395. package/providers/todoist.js +97 -0
  396. package/providers/trakt.d.ts +93 -0
  397. package/providers/trakt.d.ts.map +1 -0
  398. package/providers/trakt.js +91 -0
  399. package/providers/twitch.d.ts +71 -0
  400. package/providers/twitch.d.ts.map +1 -0
  401. package/providers/twitch.js +96 -0
  402. package/providers/twitter.d.ts +183 -0
  403. package/providers/twitter.d.ts.map +1 -0
  404. package/providers/twitter.js +100 -0
  405. package/providers/united-effects.d.ts +80 -0
  406. package/providers/united-effects.d.ts.map +1 -0
  407. package/providers/united-effects.js +72 -0
  408. package/providers/vipps.d.ts +71 -0
  409. package/providers/vipps.d.ts.map +1 -0
  410. package/providers/vipps.js +33 -0
  411. package/providers/vk.d.ts +334 -0
  412. package/providers/vk.d.ts.map +1 -0
  413. package/providers/vk.js +103 -0
  414. package/providers/webauthn.d.ts +148 -0
  415. package/providers/webauthn.d.ts.map +1 -0
  416. package/providers/webauthn.js +128 -0
  417. package/providers/webex.d.ts +78 -0
  418. package/providers/webex.d.ts.map +1 -0
  419. package/providers/webex.js +73 -0
  420. package/providers/wechat.d.ts +78 -0
  421. package/providers/wechat.d.ts.map +1 -0
  422. package/providers/wechat.js +105 -0
  423. package/providers/wikimedia.d.ts +99 -0
  424. package/providers/wikimedia.d.ts.map +1 -0
  425. package/providers/wikimedia.js +90 -0
  426. package/providers/wordpress.d.ts +65 -0
  427. package/providers/wordpress.d.ts.map +1 -0
  428. package/providers/wordpress.js +71 -0
  429. package/providers/workos.d.ts +154 -0
  430. package/providers/workos.d.ts.map +1 -0
  431. package/providers/workos.js +143 -0
  432. package/providers/yandex.d.ts +131 -0
  433. package/providers/yandex.d.ts.map +1 -0
  434. package/providers/yandex.js +80 -0
  435. package/providers/zitadel.d.ts +117 -0
  436. package/providers/zitadel.d.ts.map +1 -0
  437. package/providers/zitadel.js +95 -0
  438. package/providers/zoho.d.ts +63 -0
  439. package/providers/zoho.d.ts.map +1 -0
  440. package/providers/zoho.js +79 -0
  441. package/providers/zoom.d.ts +93 -0
  442. package/providers/zoom.d.ts.map +1 -0
  443. package/providers/zoom.js +82 -0
  444. package/src/adapters/server-actions-helpers.ts +126 -0
  445. package/src/adapters.ts +603 -0
  446. package/src/errors.ts +551 -0
  447. package/src/index.ts +689 -0
  448. package/src/jwt.ts +283 -0
  449. package/src/lib/actions/callback/handle-login.ts +334 -0
  450. package/src/lib/actions/callback/index.ts +554 -0
  451. package/src/lib/actions/callback/oauth/callback.ts +347 -0
  452. package/src/lib/actions/callback/oauth/checks.ts +258 -0
  453. package/src/lib/actions/callback/oauth/csrf-token.ts +60 -0
  454. package/src/lib/actions/index.ts +5 -0
  455. package/src/lib/actions/session.ts +167 -0
  456. package/src/lib/actions/signin/authorization-url.ts +123 -0
  457. package/src/lib/actions/signin/index.ts +37 -0
  458. package/src/lib/actions/signin/send-token.ts +124 -0
  459. package/src/lib/actions/signout.ts +38 -0
  460. package/src/lib/actions/webauthn-options.ts +100 -0
  461. package/src/lib/index.ts +97 -0
  462. package/src/lib/init.ts +236 -0
  463. package/src/lib/pages/error.tsx +106 -0
  464. package/src/lib/pages/index.ts +181 -0
  465. package/src/lib/pages/signin.tsx +255 -0
  466. package/src/lib/pages/signout.tsx +49 -0
  467. package/src/lib/pages/styles.css +377 -0
  468. package/src/lib/pages/styles.ts +381 -0
  469. package/src/lib/pages/verify-request.tsx +36 -0
  470. package/src/lib/symbols.ts +60 -0
  471. package/src/lib/utils/actions.ts +17 -0
  472. package/src/lib/utils/assert.ts +259 -0
  473. package/src/lib/utils/callback-url.ts +42 -0
  474. package/src/lib/utils/cookie.ts +248 -0
  475. package/src/lib/utils/date.ts +8 -0
  476. package/src/lib/utils/email.ts +65 -0
  477. package/src/lib/utils/env.ts +113 -0
  478. package/src/lib/utils/logger.ts +75 -0
  479. package/src/lib/utils/merge.ts +30 -0
  480. package/src/lib/utils/providers.ts +203 -0
  481. package/src/lib/utils/session.ts +41 -0
  482. package/src/lib/utils/web.ts +151 -0
  483. package/src/lib/utils/webauthn-client.js +229 -0
  484. package/src/lib/utils/webauthn-utils.ts +531 -0
  485. package/src/lib/vendored/cookie.ts +383 -0
  486. package/src/providers/42-school.ts +256 -0
  487. package/src/providers/apple.ts +206 -0
  488. package/src/providers/asgardeo.ts +118 -0
  489. package/src/providers/atlassian.ts +120 -0
  490. package/src/providers/auth0.ts +127 -0
  491. package/src/providers/authentik.ts +100 -0
  492. package/src/providers/azure-ad-b2c.ts +124 -0
  493. package/src/providers/azure-ad.ts +30 -0
  494. package/src/providers/azure-devops.ts +184 -0
  495. package/src/providers/bankid-no.ts +161 -0
  496. package/src/providers/battlenet.ts +107 -0
  497. package/src/providers/beyondidentity.ts +102 -0
  498. package/src/providers/bitbucket.ts +122 -0
  499. package/src/providers/box.ts +87 -0
  500. package/src/providers/boxyhq-saml.ts +148 -0
  501. package/src/providers/bungie.ts +192 -0
  502. package/src/providers/click-up.ts +104 -0
  503. package/src/providers/cognito.ts +94 -0
  504. package/src/providers/coinbase.ts +93 -0
  505. package/src/providers/concept2.ts +108 -0
  506. package/src/providers/credentials.ts +157 -0
  507. package/src/providers/descope.ts +105 -0
  508. package/src/providers/discord.ts +176 -0
  509. package/src/providers/dribbble.ts +122 -0
  510. package/src/providers/dropbox.ts +102 -0
  511. package/src/providers/duende-identity-server6.ts +101 -0
  512. package/src/providers/email.ts +60 -0
  513. package/src/providers/eventbrite.ts +105 -0
  514. package/src/providers/eveonline.ts +117 -0
  515. package/src/providers/facebook.ts +119 -0
  516. package/src/providers/faceit.ts +90 -0
  517. package/src/providers/figma.ts +105 -0
  518. package/src/providers/forwardemail.ts +37 -0
  519. package/src/providers/foursquare.ts +105 -0
  520. package/src/providers/freshbooks.ts +90 -0
  521. package/src/providers/frontegg.ts +111 -0
  522. package/src/providers/fusionauth.ts +336 -0
  523. package/src/providers/github.ts +187 -0
  524. package/src/providers/gitlab.ts +140 -0
  525. package/src/providers/google.ts +152 -0
  526. package/src/providers/hubspot.ts +117 -0
  527. package/src/providers/huggingface.ts +234 -0
  528. package/src/providers/identity-server4.ts +78 -0
  529. package/src/providers/index.ts +115 -0
  530. package/src/providers/instagram.ts +103 -0
  531. package/src/providers/kakao.ts +184 -0
  532. package/src/providers/keycloak.ts +111 -0
  533. package/src/providers/kinde.ts +85 -0
  534. package/src/providers/line.ts +99 -0
  535. package/src/providers/linkedin.ts +91 -0
  536. package/src/providers/logto.ts +122 -0
  537. package/src/providers/loops.ts +79 -0
  538. package/src/providers/mailchimp.ts +90 -0
  539. package/src/providers/mailgun.ts +98 -0
  540. package/src/providers/mailru.ts +75 -0
  541. package/src/providers/mastodon.ts +112 -0
  542. package/src/providers/mattermost.ts +154 -0
  543. package/src/providers/medium.ts +89 -0
  544. package/src/providers/microsoft-entra-id.ts +497 -0
  545. package/src/providers/naver.ts +102 -0
  546. package/src/providers/netlify.ts +90 -0
  547. package/src/providers/netsuite.ts +225 -0
  548. package/src/providers/nextcloud.ts +207 -0
  549. package/src/providers/nodemailer.ts +84 -0
  550. package/src/providers/notion.ts +166 -0
  551. package/src/providers/oauth.ts +310 -0
  552. package/src/providers/okta.ts +111 -0
  553. package/src/providers/onelogin.ts +75 -0
  554. package/src/providers/ory-hydra.ts +93 -0
  555. package/src/providers/osso.ts +91 -0
  556. package/src/providers/osu.ts +138 -0
  557. package/src/providers/passage.ts +103 -0
  558. package/src/providers/passkey.ts +94 -0
  559. package/src/providers/patreon.ts +98 -0
  560. package/src/providers/ping-id.ts +68 -0
  561. package/src/providers/pinterest.ts +106 -0
  562. package/src/providers/pipedrive.ts +120 -0
  563. package/src/providers/postmark.ts +38 -0
  564. package/src/providers/provider-types.ts +107 -0
  565. package/src/providers/reddit.ts +104 -0
  566. package/src/providers/resend.ts +35 -0
  567. package/src/providers/roblox.ts +94 -0
  568. package/src/providers/salesforce.ts +73 -0
  569. package/src/providers/sendgrid.ts +36 -0
  570. package/src/providers/simplelogin.ts +107 -0
  571. package/src/providers/slack.ts +115 -0
  572. package/src/providers/spotify.ts +99 -0
  573. package/src/providers/strava.ts +101 -0
  574. package/src/providers/threads.ts +135 -0
  575. package/src/providers/tiktok.ts +319 -0
  576. package/src/providers/todoist.ts +122 -0
  577. package/src/providers/trakt.ts +120 -0
  578. package/src/providers/twitch.ts +121 -0
  579. package/src/providers/twitter.ts +207 -0
  580. package/src/providers/united-effects.ts +89 -0
  581. package/src/providers/vipps.ts +86 -0
  582. package/src/providers/vk.ts +401 -0
  583. package/src/providers/webauthn.ts +296 -0
  584. package/src/providers/webex.ts +102 -0
  585. package/src/providers/wechat.ts +141 -0
  586. package/src/providers/wikimedia.ts +258 -0
  587. package/src/providers/wordpress.ts +86 -0
  588. package/src/providers/workos.ts +180 -0
  589. package/src/providers/yandex.ts +159 -0
  590. package/src/providers/zitadel.ts +128 -0
  591. package/src/providers/zoho.ts +84 -0
  592. package/src/providers/zoom.ts +119 -0
  593. package/src/types.ts +430 -0
  594. package/src/warnings.ts +21 -0
  595. package/types.d.ts +309 -0
  596. package/types.d.ts.map +1 -0
  597. package/types.js +53 -0
  598. package/warnings.d.ts +17 -0
  599. package/warnings.d.ts.map +1 -0
  600. package/warnings.js +1 -0
@@ -0,0 +1,78 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>IdentityServer4</b> integration.</span>
4
+ * <a href="https://identityserver4.readthedocs.io">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/identity-server4.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/identity-server4
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add IdentityServer4 login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/identity-server4
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import IdentityServer4 from "@auth/core/providers/identity-server4"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * IdentityServer4({
32
+ * clientId: IDENTITY_SERVER4_CLIENT_ID,
33
+ * clientSecret: IDENTITY_SERVER4_CLIENT_SECRET,
34
+ * issuer: IDENTITY_SERVER4_ISSUER,
35
+ * }),
36
+ * ],
37
+ * })
38
+ * ```
39
+ *
40
+ * ### Resources
41
+ *
42
+ * - [IdentityServer4 OAuth documentation](https://identityserver4.readthedocs.io/en/latest/)
43
+ *
44
+ * ### Notes
45
+ *
46
+ * By default, Auth.js assumes that the IdentityServer4 provider is
47
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
48
+ *
49
+ * :::warning
50
+ * IdentityServer4 is discontinued and only releases security updates until November 2022. You should consider an alternative provider.
51
+ * :::
52
+ * :::tip
53
+ *
54
+ * The IdentityServer4 provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/identity-server4.ts).
55
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
56
+ *
57
+ * :::
58
+ *
59
+ * :::info **Disclaimer**
60
+ *
61
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
62
+ *
63
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
64
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
65
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
66
+ *
67
+ * :::
68
+ */
69
+ export default function IdentityServer4(
70
+ options: OAuthUserConfig<Record<string, any>>
71
+ ): OAuthConfig<Record<string, any>> {
72
+ return {
73
+ id: "identity-server4",
74
+ name: "IdentityServer4",
75
+ type: "oidc",
76
+ options,
77
+ }
78
+ }
@@ -0,0 +1,115 @@
1
+ import type { Profile } from "../types.js"
2
+ import CredentialsProvider from "./credentials.js"
3
+ import type { CredentialsConfig, CredentialsProviderId } from "./credentials.js"
4
+ import type EmailProvider from "./email.js"
5
+ import type { EmailConfig, EmailProviderId } from "./email.js"
6
+ import type {
7
+ OAuth2Config,
8
+ OAuthConfig,
9
+ OAuthProviderId,
10
+ OIDCConfig,
11
+ } from "./oauth.js"
12
+ import type { WebAuthnConfig, WebAuthnProviderType } from "./webauthn.js"
13
+
14
+ export * from "./credentials.js"
15
+ export * from "./email.js"
16
+ export * from "./oauth.js"
17
+
18
+ /**
19
+ * Providers passed to Auth.js must define one of these types.
20
+ *
21
+ * @see [RFC 6749 - The OAuth 2.0 Authorization Framework](https://www.rfc-editor.org/rfc/rfc6749.html#section-2.3)
22
+ * @see [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication)
23
+ * @see [Email or Passwordless Authentication](https://authjs.dev/concepts/oauth)
24
+ * @see [Credentials-based Authentication](https://authjs.dev/getting-started/providers/credentials)
25
+ */
26
+ export type ProviderType =
27
+ | "oidc"
28
+ | "oauth"
29
+ | "email"
30
+ | "credentials"
31
+ | WebAuthnProviderType
32
+
33
+ /** Shared across all {@link ProviderType} */
34
+ export interface CommonProviderOptions {
35
+ /**
36
+ * Uniquely identifies the provider in {@link AuthConfig.providers}
37
+ * It's also part of the URL
38
+ */
39
+ id: string
40
+ /**
41
+ * The provider name used on the default sign-in page's sign-in button.
42
+ * For example if it's "Google", the corresponding button will say:
43
+ * "Sign in with Google"
44
+ */
45
+ name: string
46
+ /** See {@link ProviderType} */
47
+ type: ProviderType
48
+ }
49
+
50
+ interface InternalProviderOptions {
51
+ /** Used to deep merge user-provided config with the default config
52
+ */
53
+ options?: Record<string, unknown>
54
+ }
55
+
56
+ /**
57
+ * Must be a supported authentication provider config:
58
+ * - {@link OAuthConfig}
59
+ * - {@link EmailConfigInternal}
60
+ * - {@link CredentialsConfigInternal}
61
+ *
62
+ * For more information, see the guides:
63
+ *
64
+ * @see [OAuth/OIDC guide](https://authjs.dev/guides/providers/custom-provider)
65
+ * @see [Email (Passwordless) guide](https://authjs.dev/guides/providers/email)
66
+ * @see [Credentials guide](https://authjs.dev/getting-started/providers/credentials)
67
+ */
68
+ export type Provider<P extends Profile = any> = (
69
+ | ((
70
+ | OIDCConfig<P>
71
+ | OAuth2Config<P>
72
+ | EmailConfig
73
+ | CredentialsConfig
74
+ | WebAuthnConfig
75
+ ) &
76
+ InternalProviderOptions)
77
+ | ((
78
+ ...args: any
79
+ ) => (
80
+ | OAuth2Config<P>
81
+ | OIDCConfig<P>
82
+ | EmailConfig
83
+ | CredentialsConfig
84
+ | WebAuthnConfig
85
+ ) &
86
+ InternalProviderOptions)
87
+ ) &
88
+ InternalProviderOptions
89
+
90
+ export type BuiltInProviders = Record<
91
+ OAuthProviderId,
92
+ (config: Partial<OAuthConfig<any>>) => OAuthConfig<any>
93
+ > &
94
+ Record<CredentialsProviderId, typeof CredentialsProvider> &
95
+ Record<EmailProviderId, typeof EmailProvider> &
96
+ Record<
97
+ WebAuthnProviderType,
98
+ (config: Partial<WebAuthnConfig>) => WebAuthnConfig
99
+ >
100
+
101
+ export type AppProviders = Array<
102
+ Provider | ReturnType<BuiltInProviders[keyof BuiltInProviders]>
103
+ >
104
+
105
+ export interface AppProvider extends CommonProviderOptions {
106
+ signinUrl: string
107
+ callbackUrl: string
108
+ }
109
+
110
+ export type ProviderId =
111
+ | CredentialsProviderId
112
+ | EmailProviderId
113
+ | OAuthProviderId
114
+ | WebAuthnProviderType
115
+ | (string & {}) // HACK: To allow user-defined providers in `signIn`
@@ -0,0 +1,103 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Instagram</b> integration.</span>
4
+ * <a href="https://www.instagram.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/instagram.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/instagram
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add Instagram login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/instagram
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import Instagram from "@auth/core/providers/instagram"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * Instagram({
32
+ * clientId: INSTAGRAM_CLIENT_ID,
33
+ * clientSecret: INSTAGRAM_CLIENT_SECRET,
34
+ * }),
35
+ * ],
36
+ * })
37
+ * ```
38
+ *
39
+ * ### Resources
40
+ *
41
+ * - [Instagram OAuth documentation](https://developers.facebook.com/docs/instagram-basic-display-api/getting-started)
42
+ * - [Instagram OAuth apps](https://developers.facebook.com/apps/)
43
+ *
44
+ * ### Notes
45
+ *
46
+ * By default, Auth.js assumes that the Instagram provider is
47
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
48
+ *
49
+ *
50
+ * :::warning
51
+ * Email address is not returned by the Instagram API.
52
+ * :::
53
+ *
54
+ * :::tip
55
+ * Instagram display app required callback URL to be configured in your Facebook app and Facebook required you to use **https** even for localhost! In order to do that, you either need to [add an SSL to your localhost](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/) or use a proxy such as [ngrok](https://ngrok.com/docs).
56
+ * :::
57
+ * :::tip
58
+ *
59
+ * The Instagram provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/instagram.ts).
60
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
61
+ *
62
+ * :::
63
+ *
64
+ * :::info **Disclaimer**
65
+ *
66
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
67
+ *
68
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
69
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
70
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
71
+ *
72
+ * :::
73
+ */
74
+ export default function Instagram(
75
+ config: OAuthUserConfig<Record<string, any>>
76
+ ): OAuthConfig<Record<string, any>> {
77
+ return {
78
+ id: "instagram",
79
+ name: "Instagram",
80
+ type: "oauth",
81
+ authorization:
82
+ "https://api.instagram.com/oauth/authorize?scope=user_profile",
83
+ token: "https://api.instagram.com/oauth/access_token",
84
+ userinfo:
85
+ "https://graph.instagram.com/me?fields=id,username,account_type,name",
86
+ client: {
87
+ token_endpoint_auth_method: "client_secret_post",
88
+ },
89
+ async profile(profile) {
90
+ return {
91
+ id: profile.id,
92
+ name: profile.username,
93
+ email: null,
94
+ image: null,
95
+ }
96
+ },
97
+ style: {
98
+ bg: "#fff",
99
+ text: "#000",
100
+ },
101
+ options: config,
102
+ }
103
+ }
@@ -0,0 +1,184 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Kakao</b> integration.</span>
4
+ * <a href="https://www.kakaocorp.com/page/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/kakao.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/kakao
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export type DateTime = string
14
+ export type Gender = "female" | "male"
15
+ export type Birthday = "SOLAR" | "LUNAR"
16
+ export type AgeRange =
17
+ | "1-9"
18
+ | "10-14"
19
+ | "15-19"
20
+ | "20-29"
21
+ | "30-39"
22
+ | "40-49"
23
+ | "50-59"
24
+ | "60-69"
25
+ | "70-79"
26
+ | "80-89"
27
+ | "90-"
28
+
29
+ /**
30
+ * https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info
31
+ * type from : https://gist.github.com/ziponia/cdce1ebd88f979b2a6f3f53416b56a77
32
+ */
33
+ export interface KakaoProfile extends Record<string, any> {
34
+ id: number
35
+ has_signed_up?: boolean
36
+ connected_at?: DateTime
37
+ synched_at?: DateTime
38
+ properties?: {
39
+ id?: string
40
+ status?: string
41
+ registered_at?: DateTime
42
+ msg_blocked?: boolean
43
+ nickname?: string
44
+ profile_image?: string
45
+ thumbnail_image?: string
46
+ }
47
+ kakao_account?: {
48
+ profile_needs_agreement?: boolean
49
+ profile_nickname_needs_agreement?: boolean
50
+ profile_image_needs_agreement?: boolean
51
+ profile?: {
52
+ nickname?: string
53
+ thumbnail_image_url?: string
54
+ profile_image_url?: string
55
+ is_default_image?: boolean
56
+ }
57
+ name_needs_agreement?: boolean
58
+ name?: string
59
+ email_needs_agreement?: boolean
60
+ is_email_valid?: boolean
61
+ is_email_verified?: boolean
62
+ email?: string
63
+ age_range_needs_agreement?: boolean
64
+ age_range?: AgeRange
65
+ birthyear_needs_agreement?: boolean
66
+ birthyear?: string
67
+ birthday_needs_agreement?: boolean
68
+ birthday?: string
69
+ birthday_type?: Birthday
70
+ gender_needs_agreement?: boolean
71
+ gender?: Gender
72
+ phone_number_needs_agreement?: boolean
73
+ phone_number?: string
74
+ ci_needs_agreement?: boolean
75
+ ci?: string
76
+ ci_authenticated_at?: DateTime
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Add Kakao login to your page.
82
+ *
83
+ * ### Setup
84
+ *
85
+ * #### Callback URL
86
+ * ```
87
+ * https://example.com/api/auth/callback/kakao
88
+ * ```
89
+ *
90
+ * #### Configuration
91
+ *```ts
92
+ * import { Auth } from "@auth/core"
93
+ * import Kakao from "@auth/core/providers/kakao"
94
+ *
95
+ * const request = new Request(origin)
96
+ * const response = await Auth(request, {
97
+ * providers: [
98
+ * Kakao({ clientId: KAKAO_CLIENT_ID, clientSecret: KAKAO_CLIENT_SECRET }),
99
+ * ],
100
+ * })
101
+ * ```
102
+ *
103
+ * ### Resources
104
+ *
105
+ * - [Kakao OAuth documentation](https://developers.kakao.com/product/kakaoLogin)
106
+ * - [Kakao OAuth configuration](https://developers.kakao.com/docs/latest/en/kakaologin/common)
107
+ *
108
+ * ## Configuration
109
+ * Create a provider and a Kakao application at https://developers.kakao.com/console/app. In the settings of the app under Kakao Login, activate web app, change consent items and configure callback URL.
110
+ *
111
+ * ### Notes
112
+ *
113
+ * By default, Auth.js assumes that the Kakao provider is
114
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
115
+ *
116
+ *
117
+ * The "Authorized redirect URIs" used when creating the credentials must include your full domain and end in the callback path. For example;
118
+ *
119
+ * ![스크린샷 2023-11-28 오후 9 27 41](https://github.com/nextauthjs/next-auth/assets/66895208/7d4c2df6-45a6-4937-bb10-4b47c987bff4)
120
+ *
121
+ * - For production: `https://{YOUR_DOMAIN}/api/auth/callback/kakao`
122
+ * - For development: `http://localhost:3000/api/auth/callback/kakao`
123
+ *
124
+ * :::tip
125
+ *
126
+ * The Kakao provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/kakao.ts).
127
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
128
+ *
129
+ * :::
130
+ *
131
+ * :::tip
132
+ *
133
+ * Kakao's client key is in **Summary(It is written as 요약정보 in Korean.) tab's App Keys Field**
134
+ * (My Application > App Settings > Summary)
135
+ *
136
+ * ![스크린샷 2023-11-28 오후 9 47 17](https://github.com/nextauthjs/next-auth/assets/66895208/a87e5705-26b9-4f83-99d7-6df097a3632c)
137
+ *
138
+ * Kakao's clientSecret key is in **Security(It is written as 보안 in Korean.) tab's App Keys Field**
139
+ * (My Application > Product Settings > Kakao Login > Security)
140
+ *
141
+ * ![스크린샷 2023-11-28 오후 9 38 25](https://github.com/nextauthjs/next-auth/assets/66895208/6a763921-4f70-40f4-a3e1-9abc78276d45)
142
+ *
143
+ * :::
144
+ *
145
+ * :::tip
146
+ *
147
+ * Kakao dev console has a button at the top right to change from KR to ENG
148
+ *
149
+ * :::
150
+ *
151
+ * :::info **Disclaimer**
152
+ *
153
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
154
+ *
155
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
156
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
157
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
158
+ *
159
+ * :::
160
+ */
161
+ export default function Kakao<P extends KakaoProfile>(
162
+ options: OAuthUserConfig<P>
163
+ ): OAuthConfig<P> {
164
+ return {
165
+ id: "kakao",
166
+ name: "Kakao",
167
+ type: "oauth",
168
+ authorization: "https://kauth.kakao.com/oauth/authorize?scope",
169
+ token: "https://kauth.kakao.com/oauth/token",
170
+ userinfo: "https://kapi.kakao.com/v2/user/me",
171
+ client: {
172
+ token_endpoint_auth_method: "client_secret_post",
173
+ },
174
+ profile(profile) {
175
+ return {
176
+ id: profile.id.toString(),
177
+ name: profile.kakao_account?.profile?.nickname,
178
+ email: profile.kakao_account?.email,
179
+ image: profile.kakao_account?.profile?.profile_image_url,
180
+ }
181
+ },
182
+ options,
183
+ }
184
+ }
@@ -0,0 +1,111 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Keycloak</b> integration.</span>
4
+ * <a href="https://keycloak.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/keycloak.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/keycloak
10
+ */
11
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
12
+
13
+ export interface KeycloakProfile extends Record<string, any> {
14
+ exp: number
15
+ iat: number
16
+ auth_time: number
17
+ jti: string
18
+ iss: string
19
+ aud: string
20
+ sub: string
21
+ typ: string
22
+ azp: string
23
+ session_state: string
24
+ at_hash: string
25
+ acr: string
26
+ sid: string
27
+ email_verified: boolean
28
+ name: string
29
+ preferred_username: string
30
+ given_name: string
31
+ family_name: string
32
+ email: string
33
+ picture: string
34
+ user: any
35
+ }
36
+
37
+ /**
38
+ * Add Keycloak login to your page.
39
+ *
40
+ * ### Setup
41
+ *
42
+ * #### Callback URL
43
+ * ```
44
+ * https://example.com/api/auth/callback/keycloak
45
+ * ```
46
+ *
47
+ * #### Configuration
48
+ *```ts
49
+ * import { Auth } from "@auth/core"
50
+ * import Keycloak from "@auth/core/providers/keycloak"
51
+ *
52
+ * const request = new Request(origin)
53
+ * const response = await Auth(request, {
54
+ * providers: [
55
+ * Keycloak({
56
+ * clientId: KEYCLOAK_CLIENT_ID,
57
+ * clientSecret: KEYCLOAK_CLIENT_SECRET,
58
+ * issuer: KEYCLOAK_ISSUER,
59
+ * }),
60
+ * ],
61
+ * })
62
+ * ```
63
+ *
64
+ * ### Resources
65
+ *
66
+ * - [Keycloak OIDC documentation](https://www.keycloak.org/docs/latest/server_admin/#_oidc_clients)
67
+ *
68
+ * :::tip
69
+ *
70
+ * Create an openid-connect client in Keycloak with "confidential" as the "Access Type".
71
+ *
72
+ * :::
73
+ *
74
+ * :::note
75
+ *
76
+ * issuer should include the realm – e.g. https://my-keycloak-domain.com/realms/My_Realm
77
+ *
78
+ * :::
79
+ * ### Notes
80
+ *
81
+ * By default, Auth.js assumes that the Keycloak provider is
82
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
83
+ *
84
+ * :::tip
85
+ *
86
+ * The Keycloak provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/keycloak.ts).
87
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
88
+ *
89
+ * :::
90
+ *
91
+ * :::info **Disclaimer**
92
+ *
93
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
94
+ *
95
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
96
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
97
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
98
+ *
99
+ * :::
100
+ */
101
+ export default function Keycloak<P extends KeycloakProfile>(
102
+ options: OIDCUserConfig<P>
103
+ ): OIDCConfig<P> {
104
+ return {
105
+ id: "keycloak",
106
+ name: "Keycloak",
107
+ type: "oidc",
108
+ style: { brandColor: "#428bca" },
109
+ options,
110
+ }
111
+ }
@@ -0,0 +1,85 @@
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>Kinde</b> integration.
5
+ * </span>
6
+ * <a href="https://kinde.com" style={{backgroundColor: "#0F0F0F", padding: "12px", borderRadius: "100%" }}>
7
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/kinde.svg" width="24"/>
8
+ * </a>
9
+ * </div>
10
+ *
11
+ * @module providers/kinde
12
+ */
13
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
14
+
15
+ /** The returned user profile from Kinde when using the profile callback. [Reference](https://kinde.com/api/docs/#get-user-profile). */
16
+ export interface KindeProfile extends Record<string, any> {
17
+ /** The user's given name. */
18
+ first_name: string
19
+ /** The user's unique identifier. */
20
+ id: string
21
+ /** The user's family name. */
22
+ last_name: string
23
+ /** URL pointing to the user's profile picture. */
24
+ picture: string
25
+ /** The user's email address. */
26
+ preferred_email: string
27
+ /** The user's identifier from a previous system. */
28
+ provided_id: string
29
+ /** The user's username. */
30
+ username: string
31
+ }
32
+
33
+ /**
34
+ * ### Setup
35
+ *
36
+ * #### Callback URL
37
+ * ```
38
+ * https://example.com/api/auth/callback/kinde
39
+ * ```
40
+ *
41
+ * #### Configuration
42
+ * ```ts
43
+ * import { Auth } from "@auth/core"
44
+ * import Kinde from "@auth/core/providers/kinde"
45
+ *
46
+ * const request = new Request(origin)
47
+ * const response = await Auth(request, {
48
+ * providers: [
49
+ * Kinde({
50
+ * clientId: KINDE_CLIENT_ID,
51
+ * clientSecret: KINDE_CLIENT_SECRET,
52
+ * issuer: KINDE_DOMAIN,
53
+ * }),
54
+ * ],
55
+ * })
56
+ * ```
57
+ *
58
+ * ### Resources
59
+ *
60
+ * - [Kinde docs](https://docs.kinde.com/)
61
+ *
62
+ * ### Notes
63
+ *
64
+ * The Kinde provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/kinde.ts). To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
65
+ *
66
+ * ## Help
67
+ *
68
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
69
+ *
70
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
71
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
72
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
73
+ */
74
+ export default function Kinde(
75
+ config: OIDCUserConfig<KindeProfile>
76
+ ): OIDCConfig<KindeProfile> {
77
+ return {
78
+ id: "kinde",
79
+ name: "Kinde",
80
+ type: "oidc",
81
+ style: { text: "#0F0F0F", bg: "#fff" },
82
+ options: config,
83
+ checks: ["state", "pkce"],
84
+ }
85
+ }