@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,310 @@
1
+ import type { Client, PrivateKey } from "oauth4webapi"
2
+ import type { CommonProviderOptions } from "../providers/index.js"
3
+ import type { Awaitable, Profile, TokenSet, User } from "../types.js"
4
+ import type { AuthConfig } from "../index.js"
5
+ import type { conformInternal, customFetch } from "../lib/symbols.js"
6
+
7
+ // TODO: fix types
8
+ type AuthorizationParameters = any
9
+ type CallbackParamsType = any
10
+ type IssuerMetadata = any
11
+ type OAuthCallbackChecks = any
12
+ type OpenIDCallbackChecks = any
13
+
14
+ export type { OAuthProviderId } from "./provider-types.js"
15
+
16
+ export type OAuthChecks = OpenIDCallbackChecks | OAuthCallbackChecks
17
+
18
+ type PartialIssuer = Partial<Pick<IssuerMetadata, "jwks_endpoint" | "issuer">>
19
+
20
+ type UrlParams = Record<string, unknown>
21
+
22
+ type EndpointRequest<C, R, P> = (
23
+ context: C & {
24
+ /** Provider is passed for convenience, and also contains the `callbackUrl`. */
25
+ provider: OAuthConfigInternal<P> & {
26
+ signinUrl: string
27
+ callbackUrl: string
28
+ }
29
+ }
30
+ ) => Awaitable<R> | void
31
+
32
+ /** Gives granular control of the request to the given endpoint */
33
+ interface AdvancedEndpointHandler<P extends UrlParams, C, R> {
34
+ /** Endpoint URL. Can contain parameters. Optionally, you can use `params` */
35
+ url?: string
36
+ /** These will be prepended to the `url` */
37
+ params?: P
38
+ /**
39
+ * Control the corresponding OAuth endpoint request completely.
40
+ * Useful if your provider relies on some custom behaviour
41
+ * or it diverges from the OAuth spec.
42
+ *
43
+ * - ⚠ **This is an advanced option.**
44
+ * You should **try to avoid using advanced options** unless you are very comfortable using them.
45
+ */
46
+ request?: EndpointRequest<C, R, P>
47
+ /** @internal */
48
+ conform?: (response: Response) => Awaitable<Response | undefined>
49
+ clientPrivateKey?: CryptoKey | PrivateKey
50
+ }
51
+
52
+ /**
53
+ * Either an URL (containing all the parameters) or an object with more granular control.
54
+ * @internal
55
+ */
56
+ export type EndpointHandler<
57
+ P extends UrlParams,
58
+ C = any,
59
+ R = any,
60
+ > = AdvancedEndpointHandler<P, C, R>
61
+
62
+ export type AuthorizationEndpointHandler =
63
+ EndpointHandler<AuthorizationParameters>
64
+
65
+ export type TokenEndpointHandler = EndpointHandler<
66
+ UrlParams,
67
+ {
68
+ /**
69
+ * Parameters extracted from the request to the `/api/auth/callback/:providerId` endpoint.
70
+ * Contains params like `state`.
71
+ */
72
+ params: CallbackParamsType
73
+ /**
74
+ * When using this custom flow, make sure to do all the necessary security checks.
75
+ * This object contains parameters you have to match against the request to make sure it is valid.
76
+ */
77
+ checks: OAuthChecks
78
+ },
79
+ {
80
+ tokens: TokenSet
81
+ }
82
+ >
83
+
84
+ export type UserinfoEndpointHandler = EndpointHandler<
85
+ UrlParams,
86
+ { tokens: TokenSet },
87
+ Profile
88
+ >
89
+
90
+ export type ProfileCallback<Profile> = (
91
+ profile: Profile,
92
+ tokens: TokenSet
93
+ ) => Awaitable<User>
94
+
95
+ export type AccountCallback = (tokens: TokenSet) => TokenSet | undefined | void
96
+
97
+ export interface OAuthProviderButtonStyles {
98
+ logo?: string
99
+ /**
100
+ * @deprecated
101
+ */
102
+ text?: string
103
+ /**
104
+ * @deprecated Please use 'brandColor' instead
105
+ */
106
+ bg?: string
107
+ brandColor?: string
108
+ }
109
+
110
+ /** TODO: Document */
111
+ export interface OAuth2Config<Profile>
112
+ extends CommonProviderOptions,
113
+ PartialIssuer {
114
+ /**
115
+ * Identifies the provider when you want to sign in to
116
+ * a specific provider.
117
+ *
118
+ * @example
119
+ * ```ts
120
+ * signIn('github') // "github" is the provider ID
121
+ * ```
122
+ */
123
+ id: string
124
+ /** The name of the provider. shown on the default sign in page. */
125
+ name: string
126
+ /**
127
+ * OpenID Connect (OIDC) compliant providers can configure
128
+ * this instead of `authorize`/`token`/`userinfo` options
129
+ * without further configuration needed in most cases.
130
+ * You can still use the `authorize`/`token`/`userinfo`
131
+ * options for advanced control.
132
+ *
133
+ * [Authorization Server Metadata](https://datatracker.ietf.org/doc/html/rfc8414#section-3)
134
+ */
135
+ wellKnown?: string
136
+ issuer?: string
137
+ /**
138
+ * The login process will be initiated by sending the user to this URL.
139
+ *
140
+ * [Authorization endpoint](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1)
141
+ */
142
+ authorization?: string | AuthorizationEndpointHandler
143
+ token?: string | TokenEndpointHandler
144
+ userinfo?: string | UserinfoEndpointHandler
145
+ type: "oauth"
146
+ /**
147
+ * Receives the full {@link Profile} returned by the OAuth provider, and returns a subset.
148
+ * It is used to create the user in the database.
149
+ *
150
+ * Defaults to: `id`, `email`, `name`, `image`
151
+ *
152
+ * @see [Database Adapter: User model](https://authjs.dev/reference/core/adapters#user)
153
+ */
154
+ profile?: ProfileCallback<Profile>
155
+ /**
156
+ * Receives the full {@link TokenSet} returned by the OAuth provider, and returns a subset.
157
+ * It is used to create the account associated with a user in the database.
158
+ *
159
+ * :::note
160
+ * You need to adjust your database's [Account model](https://authjs.dev/reference/core/adapters#account) to match the returned properties.
161
+ * Check out the documentation of your [database adapter](https://authjs.dev/reference/core/adapters) for more information.
162
+ * :::
163
+ *
164
+ * Defaults to: `access_token`, `id_token`, `refresh_token`, `expires_at`, `scope`, `token_type`, `session_state`
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * import GitHub from "@auth/core/providers/github"
169
+ * // ...
170
+ * GitHub({
171
+ * account(account) {
172
+ * // https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens#refreshing-a-user-access-token-with-a-refresh-token
173
+ * const refresh_token_expires_at =
174
+ * Math.floor(Date.now() / 1000) + Number(account.refresh_token_expires_in)
175
+ * return {
176
+ * access_token: account.access_token,
177
+ * expires_at: account.expires_at,
178
+ * refresh_token: account.refresh_token,
179
+ * refresh_token_expires_at
180
+ * }
181
+ * }
182
+ * })
183
+ * ```
184
+ *
185
+ * @see [Database Adapter: Account model](https://authjs.dev/reference/core/adapters#account)
186
+ * @see https://openid.net/specs/openid-connect-core-1_0.html#TokenResponse
187
+ * @see https://www.ietf.org/rfc/rfc6749.html#section-5.1
188
+ */
189
+ account?: AccountCallback
190
+ /**
191
+ * The CSRF protection performed on the callback endpoint.
192
+ * @default ["pkce"]
193
+ *
194
+ * @note When `redirectProxyUrl` or {@link AuthConfig.redirectProxyUrl} is set,
195
+ * `"state"` will be added to checks automatically.
196
+ *
197
+ * [RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients (PKCE)](https://www.rfc-editor.org/rfc/rfc7636.html#section-4) |
198
+ * [RFC 6749 - The OAuth 2.0 Authorization Framework](https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.1) |
199
+ * [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) |
200
+ */
201
+ checks?: Array<"pkce" | "state" | "none">
202
+ clientId?: string
203
+ clientSecret?: string
204
+ /**
205
+ * Pass overrides to the underlying OAuth library.
206
+ * See [`oauth4webapi` client](https://github.com/panva/oauth4webapi/blob/main/docs/interfaces/Client.md) for details.
207
+ */
208
+ client?: Partial<Client & { token_endpoint_auth_method: string }>
209
+ style?: OAuthProviderButtonStyles
210
+ /**
211
+ * Normally, when you sign in with an OAuth provider and another account
212
+ * with the same email address already exists,
213
+ * the accounts are not linked automatically.
214
+ *
215
+ * Automatic account linking on sign in is not secure
216
+ * between arbitrary providers and is disabled by default.
217
+ * Learn more in our [Security FAQ](https://authjs.dev/concepts#security).
218
+ *
219
+ * However, it may be desirable to allow automatic account linking if you trust that the provider involved has securely verified the email address
220
+ * associated with the account. Set `allowDangerousEmailAccountLinking: true`
221
+ * to enable automatic account linking.
222
+ */
223
+ allowDangerousEmailAccountLinking?: boolean
224
+ redirectProxyUrl?: AuthConfig["redirectProxyUrl"]
225
+ /** @see {customFetch} */
226
+ [customFetch]?: typeof fetch
227
+ /**
228
+ * The options provided by the user.
229
+ * We will perform a deep-merge of these values
230
+ * with the default configuration.
231
+ *
232
+ * @internal
233
+ */
234
+ /** @see {conformInternal} */
235
+ [conformInternal]?: true
236
+ options?: OAuthUserConfig<Profile>
237
+ }
238
+
239
+ /**
240
+ * Extension of the {@link OAuth2Config}.
241
+ *
242
+ * @see https://openid.net/specs/openid-connect-core-1_0.html
243
+ */
244
+ export interface OIDCConfig<Profile>
245
+ extends Omit<OAuth2Config<Profile>, "type" | "checks"> {
246
+ type: "oidc"
247
+ checks?: Array<NonNullable<OAuth2Config<Profile>["checks"]>[number] | "nonce">
248
+ /**
249
+ * If set to `false`, the `userinfo_endpoint` will be fetched for the user data.
250
+ * @note An `id_token` is still required to be returned during the authorization flow.
251
+ */
252
+ idToken?: boolean
253
+ }
254
+
255
+ export type OAuthConfig<Profile> = OIDCConfig<Profile> | OAuth2Config<Profile>
256
+
257
+ export type OAuthEndpointType = "authorization" | "token" | "userinfo"
258
+
259
+ /**
260
+ * We parsed `authorization`, `token` and `userinfo`
261
+ * to always contain a valid `URL`, with the params
262
+ * @internal
263
+ */
264
+ export type OAuthConfigInternal<Profile> = Omit<
265
+ OAuthConfig<Profile>,
266
+ OAuthEndpointType | "redirectProxyUrl"
267
+ > & {
268
+ authorization?: { url: URL }
269
+ token?: {
270
+ url: URL
271
+ request?: TokenEndpointHandler["request"]
272
+ clientPrivateKey?: CryptoKey | PrivateKey
273
+ /**
274
+ * @internal
275
+ * @deprecated
276
+ */
277
+ conform?: TokenEndpointHandler["conform"]
278
+ }
279
+ userinfo?: { url: URL; request?: UserinfoEndpointHandler["request"] }
280
+ /**
281
+ * Reconstructed from {@link OAuth2Config.redirectProxyUrl},
282
+ * adding the callback action and provider id onto the URL.
283
+ *
284
+ * If defined, it is favoured over {@link OAuthConfigInternal.callbackUrl} in the authorization request.
285
+ *
286
+ * When {@link InternalOptions.isOnRedirectProxy} is set, the actual value is saved in the decoded `state.origin` parameter.
287
+ *
288
+ * @example `"https://auth.example.com/api/auth/callback/:provider"`
289
+ *
290
+ */
291
+ redirectProxyUrl?: OAuth2Config<Profile>["redirectProxyUrl"]
292
+ } & Pick<
293
+ Required<OAuthConfig<Profile>>,
294
+ "clientId" | "checks" | "profile" | "account"
295
+ >
296
+
297
+ export type OIDCConfigInternal<Profile> = OAuthConfigInternal<Profile> & {
298
+ checks: OIDCConfig<Profile>["checks"]
299
+ idToken: OIDCConfig<Profile>["idToken"]
300
+ }
301
+
302
+ export type OAuthUserConfig<Profile> = Omit<
303
+ Partial<OAuthConfig<Profile>>,
304
+ "options" | "type"
305
+ >
306
+
307
+ export type OIDCUserConfig<Profile> = Omit<
308
+ Partial<OIDCConfig<Profile>>,
309
+ "options" | "type"
310
+ >
@@ -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>Okta</b> integration.</span>
4
+ * <a href="https://okta.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/okta.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/okta
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface OktaProfile extends Record<string, any> {
14
+ iss: string
15
+ ver: string
16
+ sub: string
17
+ aud: string
18
+ iat: string
19
+ exp: string
20
+ jti: string
21
+ auth_time: string
22
+ amr: string
23
+ idp: string
24
+ nonce: string
25
+ name: string
26
+ nickname: string
27
+ preferred_username: string
28
+ given_name: string
29
+ middle_name: string
30
+ family_name: string
31
+ email: string
32
+ email_verified: string
33
+ profile: string
34
+ zoneinfo: string
35
+ locale: string
36
+ address: string
37
+ phone_number: string
38
+ picture: string
39
+ website: string
40
+ gender: string
41
+ birthdate: string
42
+ updated_at: string
43
+ at_hash: string
44
+ c_hash: string
45
+ }
46
+
47
+ /**
48
+ * Add Okta login to your page.
49
+ *
50
+ * ### Setup
51
+ *
52
+ * #### Callback URL
53
+ * ```
54
+ * https://example.com/api/auth/callback/okta
55
+ * ```
56
+ *
57
+ * #### Configuration
58
+ *```ts
59
+ * import { Auth } from "@auth/core"
60
+ * import Okta from "@auth/core/providers/okta"
61
+ *
62
+ * const request = new Request(origin)
63
+ * const response = await Auth(request, {
64
+ * providers: [
65
+ * Okta({
66
+ * clientId: OKTA_CLIENT_ID,
67
+ * clientSecret: OKTA_CLIENT_SECRET,
68
+ * issuer: OKTA_ISSUER,
69
+ * }),
70
+ * ],
71
+ * })
72
+ * ```
73
+ *
74
+ * ### Resources
75
+ *
76
+ * - [Okta OAuth documentation](https://developer.okta.com/docs/reference/api/oidc)
77
+ *
78
+ * ### Notes
79
+ *
80
+ * By default, Auth.js assumes that the Okta provider is
81
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
82
+ *
83
+ * :::tip
84
+ *
85
+ * The Okta provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/okta.ts).
86
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
87
+ *
88
+ * :::
89
+ *
90
+ * :::info **Disclaimer**
91
+ *
92
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
93
+ *
94
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
95
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
96
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
97
+ *
98
+ * :::
99
+ */
100
+ export default function Okta<P extends OktaProfile>(
101
+ options: OAuthUserConfig<P>
102
+ ): OAuthConfig<P> {
103
+ return {
104
+ id: "okta",
105
+ name: "Okta",
106
+ type: "oidc",
107
+ style: { bg: "#000", text: "#fff" },
108
+ checks: ["pkce", "state"],
109
+ options,
110
+ }
111
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>OneLogin</b> integration.</span>
4
+ * <a href="https://onelogin.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/onelogin.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/onelogin
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add OneLogin login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/onelogin
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import OneLogin from "@auth/core/providers/onelogin"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * OneLogin({
32
+ * clientId: ONELOGIN_CLIENT_ID,
33
+ * clientSecret: ONELOGIN_CLIENT_SECRET,
34
+ * }),
35
+ * ],
36
+ * })
37
+ * ```
38
+ *
39
+ * ### Resources
40
+ *
41
+ * - [OneLogin OAuth documentation](https://example.com)
42
+ *
43
+ * ### Notes
44
+ *
45
+ * By default, Auth.js assumes that the OneLogin provider is
46
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
47
+ *
48
+ * :::tip
49
+ *
50
+ * The OneLogin provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/onelogin.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 OneLogin(
66
+ config: OAuthUserConfig<Record<string, any>>
67
+ ): OAuthConfig<Record<string, any>> {
68
+ return {
69
+ id: "onelogin",
70
+ name: "OneLogin",
71
+ type: "oidc",
72
+ wellKnown: `${config.issuer}/oidc/2/.well-known/openid-configuration`,
73
+ options: config,
74
+ }
75
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Ory Hydra</b> integration.</span>
4
+ * <a href="https://www.ory.sh/hydra/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/ory.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/ory-hydra
10
+ */
11
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
12
+
13
+ export interface OryHydraProfile extends Record<string, any> {
14
+ iss: string
15
+ ver: string
16
+ sub: string
17
+ aud: string
18
+ iat: string
19
+ exp: string
20
+ jti: string
21
+ amr: string
22
+ email?: string
23
+ }
24
+
25
+ /**
26
+ * Add Ory Hydra login to your page.
27
+ *
28
+ * ### Setup
29
+ *
30
+ * #### Callback URL
31
+ * ```
32
+ * https://example.com/api/auth/callback/hydra
33
+ * ```
34
+ *
35
+ * #### Configuration
36
+ *```ts
37
+ * import { Auth } from "@auth/core"
38
+ * import OryHydra from "@auth/core/providers/ory-hydra"
39
+ *
40
+ * const request = new Request(origin)
41
+ * const response = await Auth(request, {
42
+ * providers: [
43
+ * OryHydra({
44
+ * clientId: ORY_HYDRA_CLIENT_ID,
45
+ * clientSecret: ORY_HYDRA_CLIENT_SECRET,
46
+ * issuer: ORY_HYDRA_ISSUER,
47
+ * }),
48
+ * ],
49
+ * })
50
+ * ```
51
+ *
52
+ * ### Resources
53
+ *
54
+ * - [Ory Hydra documentation](https://www.ory.sh/docs/hydra/5min-tutorial)
55
+ *
56
+ * ### Notes
57
+ *
58
+ * Ory Hydra can be setup using the default Ory Network setup or self hosted on your own
59
+ * infrastructure.
60
+ * By default, Auth.js assumes that the Ory Hydra provider is
61
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
62
+ *
63
+ * :::tip
64
+ *
65
+ * The Ory Hydra provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/ory-hydra.ts).
66
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
67
+ *
68
+ * :::
69
+ *
70
+ * :::info **Disclaimer**
71
+ *
72
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
73
+ *
74
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
75
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
76
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
77
+ *
78
+ * :::
79
+ */
80
+ export default function OryHydra<P extends OryHydraProfile>(
81
+ options: OIDCUserConfig<P>
82
+ ): OIDCConfig<P> {
83
+ return {
84
+ id: "hydra",
85
+ name: "Hydra",
86
+ type: "oidc",
87
+ style: {
88
+ bg: "#fff",
89
+ text: "#0F172A",
90
+ },
91
+ options,
92
+ }
93
+ }
@@ -0,0 +1,91 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Osso</b> integration.</span>
4
+ * <a href="https://ossoapp.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/osso.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/osso
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ /**
14
+ * Add Osso login to your page.
15
+ *
16
+ * ### Setup
17
+ *
18
+ * #### Callback URL
19
+ * ```
20
+ * https://example.com/api/auth/callback/osso
21
+ * ```
22
+ *
23
+ * #### Configuration
24
+ *```ts
25
+ * import { Auth } from "@auth/core"
26
+ * import Osso from "@auth/core/providers/osso"
27
+ *
28
+ * const request = new Request(origin)
29
+ * const response = await Auth(request, {
30
+ * providers: [
31
+ * Osso({
32
+ * clientId: OSSO_CLIENT_ID,
33
+ * clientSecret: OSSO_CLIENT_SECRET,
34
+ * issuer: OSSO_ISSUER,
35
+ * }),
36
+ * ],
37
+ * })
38
+ * ```
39
+ *
40
+ * ### Resources
41
+ * Osso is an open source service that handles SAML authentication against Identity Providers, normalizes profiles, and makes those profiles available to you in an OAuth 2.0 code grant flow.
42
+ *
43
+ * - If you don't yet have an Osso instance, you can use [Osso's Demo App](https://demo.ossoapp.com) for your testing purposes. For documentation on deploying an Osso instance, see https://ossoapp.com/docs/deploy/overview/
44
+ * - [Osso OAuth documentation](https://ossoapp.com/)
45
+ *
46
+ * You can configure your OAuth Clients on your Osso Admin UI, i.e. https://demo.ossoapp.com/admin/config - you'll need to get a Client ID and Secret and allow-list your redirect URIs.
47
+ * [SAML SSO differs a bit from OAuth](https://ossoapp.com/blog/saml-vs-oauth) - for every tenant who wants to sign in to your application using SAML, you and your customer need to perform a multi-step configuration in Osso's Admin UI and the admin dashboard of the tenant's Identity Provider. Osso provides documentation for providers like Okta and OneLogin, cloud-based IDPs who also offer a developer account that's useful for testing. Osso also provides a [Mock IDP](https://idp.ossoapp.com) that you can use for testing without needing to sign up for an Identity Provider service.
48
+
49
+ * See Osso's complete configuration and testing documentation at https://ossoapp.com/docs/configure/overview
50
+ *
51
+ * ### Notes
52
+ *
53
+ * By default, Auth.js assumes that the Osso provider is
54
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
55
+ *
56
+ * :::note
57
+ *
58
+ * `issuer` should be the fully qualified domain e.g. `demo.ossoapp.com`
59
+ *
60
+ * :::
61
+ *
62
+ * :::tip
63
+ *
64
+ * The Osso provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/osso.ts).
65
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
66
+ *
67
+ * :::
68
+ *
69
+ * :::info **Disclaimer**
70
+ *
71
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
72
+ *
73
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
74
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
75
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
76
+ *
77
+ * :::
78
+ */
79
+ export default function Osso(
80
+ config: OAuthUserConfig<Record<string, any>>
81
+ ): OAuthConfig<Record<string, any>> {
82
+ return {
83
+ id: "osso",
84
+ name: "Osso",
85
+ type: "oauth",
86
+ authorization: `${config.issuer}oauth/authorize`,
87
+ token: `${config.issuer}oauth/token`,
88
+ userinfo: `${config.issuer}oauth/me`,
89
+ options: config,
90
+ }
91
+ }