@strapi/plugin-users-permissions 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282 → 0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc

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 (371) hide show
  1. package/.eslintrc.cjs +2 -0
  2. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +3 -1
  3. package/admin/src/pages/Roles/pages/EditPage.jsx +1 -1
  4. package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
  5. package/admin/src/translations/en.json +1 -0
  6. package/admin/src/translations/es.json +1 -1
  7. package/admin/src/translations/ko.json +2 -1
  8. package/admin/src/translations/sv.json +1 -1
  9. package/admin/src/translations/uk.json +1 -1
  10. package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
  11. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
  12. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
  13. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
  14. package/dist/admin/pages/Roles/pages/EditPage.js +1 -1
  15. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
  16. package/dist/admin/pages/Roles/pages/EditPage.mjs +1 -1
  17. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
  18. package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -1
  19. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
  20. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -1
  21. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
  22. package/dist/admin/translations/en.json.js +1 -0
  23. package/dist/admin/translations/en.json.js.map +1 -1
  24. package/dist/admin/translations/en.json.mjs +1 -0
  25. package/dist/admin/translations/en.json.mjs.map +1 -1
  26. package/dist/admin/translations/es.json.js +1 -1
  27. package/dist/admin/translations/es.json.mjs +1 -1
  28. package/dist/admin/translations/ko.json.js +2 -1
  29. package/dist/admin/translations/ko.json.js.map +1 -1
  30. package/dist/admin/translations/ko.json.mjs +2 -1
  31. package/dist/admin/translations/ko.json.mjs.map +1 -1
  32. package/dist/admin/translations/sv.json.js +1 -1
  33. package/dist/admin/translations/sv.json.mjs +1 -1
  34. package/dist/admin/translations/uk.json.js +1 -1
  35. package/dist/admin/translations/uk.json.mjs +1 -1
  36. package/dist/server/_virtual/_node_crypto.js +10 -0
  37. package/dist/server/_virtual/_node_crypto.js.map +1 -0
  38. package/dist/server/_virtual/_node_crypto.mjs +7 -0
  39. package/dist/server/_virtual/_node_crypto.mjs.map +1 -0
  40. package/dist/server/_virtual/_node_url.js +10 -0
  41. package/dist/server/_virtual/_node_url.js.map +1 -0
  42. package/dist/server/_virtual/_node_url.mjs +7 -0
  43. package/dist/server/_virtual/_node_url.mjs.map +1 -0
  44. package/dist/server/bootstrap/index.js.map +1 -1
  45. package/dist/server/bootstrap/index.mjs.map +1 -1
  46. package/dist/server/bootstrap/users-permissions-actions.js.map +1 -1
  47. package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -1
  48. package/dist/server/config.js.map +1 -1
  49. package/dist/server/config.mjs.map +1 -1
  50. package/dist/server/content-types/index.js.map +1 -1
  51. package/dist/server/content-types/index.mjs.map +1 -1
  52. package/dist/server/content-types/permission/index.js.map +1 -1
  53. package/dist/server/content-types/permission/index.mjs.map +1 -1
  54. package/dist/server/content-types/role/index.js.map +1 -1
  55. package/dist/server/content-types/role/index.mjs.map +1 -1
  56. package/dist/server/content-types/user/index.js.map +1 -1
  57. package/dist/server/content-types/user/index.mjs.map +1 -1
  58. package/dist/server/content-types/user/schema-config.js.map +1 -1
  59. package/dist/server/content-types/user/schema-config.mjs.map +1 -1
  60. package/dist/server/controllers/auth.js +38 -30
  61. package/dist/server/controllers/auth.js.map +1 -1
  62. package/dist/server/controllers/auth.mjs +38 -28
  63. package/dist/server/controllers/auth.mjs.map +1 -1
  64. package/dist/server/controllers/content-manager-user.js.map +1 -1
  65. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  66. package/dist/server/controllers/index.js.map +1 -1
  67. package/dist/server/controllers/index.mjs.map +1 -1
  68. package/dist/server/controllers/permissions.js.map +1 -1
  69. package/dist/server/controllers/permissions.mjs.map +1 -1
  70. package/dist/server/controllers/role.js.map +1 -1
  71. package/dist/server/controllers/role.mjs.map +1 -1
  72. package/dist/server/controllers/settings.js.map +1 -1
  73. package/dist/server/controllers/settings.mjs.map +1 -1
  74. package/dist/server/controllers/user.js.map +1 -1
  75. package/dist/server/controllers/user.mjs.map +1 -1
  76. package/dist/server/controllers/validation/auth.js +6 -6
  77. package/dist/server/controllers/validation/auth.js.map +1 -1
  78. package/dist/server/controllers/validation/auth.mjs +6 -6
  79. package/dist/server/controllers/validation/auth.mjs.map +1 -1
  80. package/dist/server/controllers/validation/email-template.js +1 -4
  81. package/dist/server/controllers/validation/email-template.js.map +1 -1
  82. package/dist/server/controllers/validation/email-template.mjs +1 -3
  83. package/dist/server/controllers/validation/email-template.mjs.map +1 -1
  84. package/dist/server/controllers/validation/user.js.map +1 -1
  85. package/dist/server/controllers/validation/user.mjs.map +1 -1
  86. package/dist/server/graphql/index.js.map +1 -1
  87. package/dist/server/graphql/index.mjs.map +1 -1
  88. package/dist/server/graphql/mutations/auth/change-password.js +7 -4
  89. package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
  90. package/dist/server/graphql/mutations/auth/change-password.mjs +7 -4
  91. package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
  92. package/dist/server/graphql/mutations/auth/email-confirmation.js +1 -1
  93. package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -1
  94. package/dist/server/graphql/mutations/auth/email-confirmation.mjs +1 -1
  95. package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -1
  96. package/dist/server/graphql/mutations/auth/forgot-password.js +7 -4
  97. package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
  98. package/dist/server/graphql/mutations/auth/forgot-password.mjs +7 -4
  99. package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
  100. package/dist/server/graphql/mutations/auth/login.js +10 -7
  101. package/dist/server/graphql/mutations/auth/login.js.map +1 -1
  102. package/dist/server/graphql/mutations/auth/login.mjs +10 -7
  103. package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
  104. package/dist/server/graphql/mutations/auth/rate-limit.js +63 -0
  105. package/dist/server/graphql/mutations/auth/rate-limit.js.map +1 -0
  106. package/dist/server/graphql/mutations/auth/rate-limit.mjs +61 -0
  107. package/dist/server/graphql/mutations/auth/rate-limit.mjs.map +1 -0
  108. package/dist/server/graphql/mutations/auth/register.js +7 -4
  109. package/dist/server/graphql/mutations/auth/register.js.map +1 -1
  110. package/dist/server/graphql/mutations/auth/register.mjs +7 -4
  111. package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
  112. package/dist/server/graphql/mutations/auth/reset-password.js +7 -4
  113. package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
  114. package/dist/server/graphql/mutations/auth/reset-password.mjs +7 -4
  115. package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
  116. package/dist/server/graphql/mutations/crud/role/create-role.js +1 -1
  117. package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
  118. package/dist/server/graphql/mutations/crud/role/create-role.mjs +1 -1
  119. package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
  120. package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
  121. package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
  122. package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
  123. package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
  124. package/dist/server/graphql/mutations/crud/user/create-user.js +1 -1
  125. package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
  126. package/dist/server/graphql/mutations/crud/user/create-user.mjs +1 -1
  127. package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
  128. package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -1
  129. package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -1
  130. package/dist/server/graphql/mutations/crud/user/update-user.js +1 -1
  131. package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -1
  132. package/dist/server/graphql/mutations/crud/user/update-user.mjs +1 -1
  133. package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -1
  134. package/dist/server/graphql/mutations/index.js.map +1 -1
  135. package/dist/server/graphql/mutations/index.mjs.map +1 -1
  136. package/dist/server/graphql/queries/index.js.map +1 -1
  137. package/dist/server/graphql/queries/index.mjs.map +1 -1
  138. package/dist/server/graphql/queries/me.js.map +1 -1
  139. package/dist/server/graphql/queries/me.mjs.map +1 -1
  140. package/dist/server/graphql/resolvers-configs.js.map +1 -1
  141. package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
  142. package/dist/server/graphql/types/create-role-payload.js.map +1 -1
  143. package/dist/server/graphql/types/create-role-payload.mjs.map +1 -1
  144. package/dist/server/graphql/types/delete-role-payload.js.map +1 -1
  145. package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -1
  146. package/dist/server/graphql/types/index.js.map +1 -1
  147. package/dist/server/graphql/types/index.mjs.map +1 -1
  148. package/dist/server/graphql/types/login-input.js.map +1 -1
  149. package/dist/server/graphql/types/login-input.mjs.map +1 -1
  150. package/dist/server/graphql/types/login-payload.js.map +1 -1
  151. package/dist/server/graphql/types/login-payload.mjs.map +1 -1
  152. package/dist/server/graphql/types/me-role.js.map +1 -1
  153. package/dist/server/graphql/types/me-role.mjs.map +1 -1
  154. package/dist/server/graphql/types/me.js.map +1 -1
  155. package/dist/server/graphql/types/me.mjs.map +1 -1
  156. package/dist/server/graphql/types/password-payload.js.map +1 -1
  157. package/dist/server/graphql/types/password-payload.mjs.map +1 -1
  158. package/dist/server/graphql/types/register-input.js.map +1 -1
  159. package/dist/server/graphql/types/register-input.mjs.map +1 -1
  160. package/dist/server/graphql/types/update-role-payload.js.map +1 -1
  161. package/dist/server/graphql/types/update-role-payload.mjs.map +1 -1
  162. package/dist/server/graphql/types/user-input.js.map +1 -1
  163. package/dist/server/graphql/types/user-input.mjs.map +1 -1
  164. package/dist/server/graphql/utils.js +4 -4
  165. package/dist/server/graphql/utils.js.map +1 -1
  166. package/dist/server/graphql/utils.mjs +4 -4
  167. package/dist/server/graphql/utils.mjs.map +1 -1
  168. package/dist/server/index.js +2 -2
  169. package/dist/server/index.js.map +1 -1
  170. package/dist/server/index.mjs +3 -3
  171. package/dist/server/index.mjs.map +1 -1
  172. package/dist/server/index2.js +8 -8
  173. package/dist/server/index2.js.map +1 -1
  174. package/dist/server/index2.mjs +8 -8
  175. package/dist/server/index2.mjs.map +1 -1
  176. package/dist/server/middlewares/index.js.map +1 -1
  177. package/dist/server/middlewares/index.mjs.map +1 -1
  178. package/dist/server/middlewares/rateLimit.js +5 -5
  179. package/dist/server/middlewares/rateLimit.js.map +1 -1
  180. package/dist/server/middlewares/rateLimit.mjs +5 -5
  181. package/dist/server/middlewares/rateLimit.mjs.map +1 -1
  182. package/dist/server/register.js.map +1 -1
  183. package/dist/server/register.mjs.map +1 -1
  184. package/dist/server/routes/admin/index.js.map +1 -1
  185. package/dist/server/routes/admin/index.mjs.map +1 -1
  186. package/dist/server/routes/admin/permissions.js.map +1 -1
  187. package/dist/server/routes/admin/permissions.mjs.map +1 -1
  188. package/dist/server/routes/admin/role.js.map +1 -1
  189. package/dist/server/routes/admin/role.mjs.map +1 -1
  190. package/dist/server/routes/admin/settings.js.map +1 -1
  191. package/dist/server/routes/admin/settings.mjs.map +1 -1
  192. package/dist/server/routes/content-api/auth.js.map +1 -1
  193. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  194. package/dist/server/routes/content-api/index.js.map +1 -1
  195. package/dist/server/routes/content-api/index.mjs.map +1 -1
  196. package/dist/server/routes/content-api/permissions.js.map +1 -1
  197. package/dist/server/routes/content-api/permissions.mjs.map +1 -1
  198. package/dist/server/routes/content-api/role.js.map +1 -1
  199. package/dist/server/routes/content-api/role.mjs.map +1 -1
  200. package/dist/server/routes/content-api/user.js.map +1 -1
  201. package/dist/server/routes/content-api/user.mjs.map +1 -1
  202. package/dist/server/routes/content-api/validation.js.map +1 -1
  203. package/dist/server/routes/content-api/validation.mjs.map +1 -1
  204. package/dist/server/routes/index.js.map +1 -1
  205. package/dist/server/routes/index.mjs.map +1 -1
  206. package/dist/server/services/constants.js.map +1 -1
  207. package/dist/server/services/constants.mjs.map +1 -1
  208. package/dist/server/services/index.js.map +1 -1
  209. package/dist/server/services/index.mjs.map +1 -1
  210. package/dist/server/services/jwt.js.map +1 -1
  211. package/dist/server/services/jwt.mjs.map +1 -1
  212. package/dist/server/services/permission.js.map +1 -1
  213. package/dist/server/services/permission.mjs.map +1 -1
  214. package/dist/server/services/providers-registry.js +188 -248
  215. package/dist/server/services/providers-registry.js.map +1 -1
  216. package/dist/server/services/providers-registry.mjs +188 -245
  217. package/dist/server/services/providers-registry.mjs.map +1 -1
  218. package/dist/server/services/providers.js +15 -11
  219. package/dist/server/services/providers.js.map +1 -1
  220. package/dist/server/services/providers.mjs +14 -10
  221. package/dist/server/services/providers.mjs.map +1 -1
  222. package/dist/server/services/role.js +2 -2
  223. package/dist/server/services/role.js.map +1 -1
  224. package/dist/server/services/role.mjs +2 -2
  225. package/dist/server/services/role.mjs.map +1 -1
  226. package/dist/server/services/user.js +14 -14
  227. package/dist/server/services/user.js.map +1 -1
  228. package/dist/server/services/user.mjs +13 -13
  229. package/dist/server/services/user.mjs.map +1 -1
  230. package/dist/server/services/users-permissions.js +17 -20
  231. package/dist/server/services/users-permissions.js.map +1 -1
  232. package/dist/server/services/users-permissions.mjs +16 -18
  233. package/dist/server/services/users-permissions.mjs.map +1 -1
  234. package/dist/server/strategies/users-permissions.js +9 -8
  235. package/dist/server/strategies/users-permissions.js.map +1 -1
  236. package/dist/server/strategies/users-permissions.mjs +9 -8
  237. package/dist/server/strategies/users-permissions.mjs.map +1 -1
  238. package/dist/server/utils/index.js.map +1 -1
  239. package/dist/server/utils/index.mjs.map +1 -1
  240. package/dist/server/utils/oauth-connect/index.js +241 -0
  241. package/dist/server/utils/oauth-connect/index.js.map +1 -0
  242. package/dist/server/utils/oauth-connect/index.mjs +235 -0
  243. package/dist/server/utils/oauth-connect/index.mjs.map +1 -0
  244. package/dist/server/utils/oauth-connect/oauth1.js +138 -0
  245. package/dist/server/utils/oauth-connect/oauth1.js.map +1 -0
  246. package/dist/server/utils/oauth-connect/oauth1.mjs +136 -0
  247. package/dist/server/utils/oauth-connect/oauth1.mjs.map +1 -0
  248. package/dist/server/utils/oauth-connect/oauth2.js +117 -0
  249. package/dist/server/utils/oauth-connect/oauth2.js.map +1 -0
  250. package/dist/server/utils/oauth-connect/oauth2.mjs +115 -0
  251. package/dist/server/utils/oauth-connect/oauth2.mjs.map +1 -0
  252. package/dist/server/utils/oauth-connect/providers.js +109 -0
  253. package/dist/server/utils/oauth-connect/providers.js.map +1 -0
  254. package/dist/server/utils/oauth-connect/providers.mjs +107 -0
  255. package/dist/server/utils/oauth-connect/providers.mjs.map +1 -0
  256. package/dist/server/utils/provider-http.js +52 -0
  257. package/dist/server/utils/provider-http.js.map +1 -0
  258. package/dist/server/utils/provider-http.mjs +50 -0
  259. package/dist/server/utils/provider-http.mjs.map +1 -0
  260. package/dist/server/utils/refresh-cookie-options.js.map +1 -1
  261. package/dist/server/utils/refresh-cookie-options.mjs.map +1 -1
  262. package/dist/server/utils/sanitize/index.js.map +1 -1
  263. package/dist/server/utils/sanitize/index.mjs.map +1 -1
  264. package/dist/server/utils/sanitize/sanitizers.js +1 -1
  265. package/dist/server/utils/sanitize/sanitizers.js.map +1 -1
  266. package/dist/server/utils/sanitize/sanitizers.mjs +1 -1
  267. package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -1
  268. package/dist/server/utils/sanitize/visitors/index.js.map +1 -1
  269. package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -1
  270. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -1
  271. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -1
  272. package/dist/server/utils/trim-grant-session-response.js +67 -0
  273. package/dist/server/utils/trim-grant-session-response.js.map +1 -0
  274. package/dist/server/utils/trim-grant-session-response.mjs +65 -0
  275. package/dist/server/utils/trim-grant-session-response.mjs.map +1 -0
  276. package/dist/server/utils/verify-jwt-with-jwks.js +60 -0
  277. package/dist/server/utils/verify-jwt-with-jwks.js.map +1 -0
  278. package/dist/server/utils/verify-jwt-with-jwks.mjs +54 -0
  279. package/dist/server/utils/verify-jwt-with-jwks.mjs.map +1 -0
  280. package/jsconfig.json +7 -0
  281. package/package.json +28 -18
  282. package/rollup.config.mjs +2 -2
  283. package/server/{controllers → src/controllers}/auth.js +36 -29
  284. package/server/{controllers → src/controllers}/validation/auth.js +6 -6
  285. package/server/{controllers → src/controllers}/validation/email-template.js +1 -2
  286. package/server/{graphql → src/graphql}/mutations/auth/change-password.js +6 -6
  287. package/server/{graphql → src/graphql}/mutations/auth/email-confirmation.js +1 -1
  288. package/server/{graphql → src/graphql}/mutations/auth/forgot-password.js +6 -6
  289. package/server/{graphql → src/graphql}/mutations/auth/login.js +11 -7
  290. package/server/src/graphql/mutations/auth/rate-limit.js +62 -0
  291. package/server/{graphql → src/graphql}/mutations/auth/register.js +6 -6
  292. package/server/{graphql → src/graphql}/mutations/auth/reset-password.js +6 -6
  293. package/server/{graphql → src/graphql}/mutations/crud/role/create-role.js +1 -1
  294. package/server/{graphql → src/graphql}/mutations/crud/user/create-user.js +1 -1
  295. package/server/{graphql → src/graphql}/mutations/crud/user/update-user.js +1 -1
  296. package/server/{graphql → src/graphql}/utils.js +3 -3
  297. package/server/{middlewares → src/middlewares}/rateLimit.js +4 -4
  298. package/server/src/services/providers-registry.js +487 -0
  299. package/server/{services → src/services}/providers.js +9 -7
  300. package/server/{services → src/services}/role.js +2 -2
  301. package/server/{services → src/services}/user.js +16 -6
  302. package/server/{services → src/services}/users-permissions.js +14 -16
  303. package/server/{strategies → src/strategies}/users-permissions.js +14 -10
  304. package/server/src/utils/oauth-connect/index.js +262 -0
  305. package/server/src/utils/oauth-connect/oauth1.js +169 -0
  306. package/server/src/utils/oauth-connect/oauth2.js +123 -0
  307. package/server/src/utils/oauth-connect/providers.js +100 -0
  308. package/server/src/utils/provider-http.js +49 -0
  309. package/server/{utils → src/utils}/sanitize/sanitizers.js +1 -1
  310. package/server/src/utils/trim-grant-session-response.js +70 -0
  311. package/server/src/utils/verify-jwt-with-jwks.js +43 -0
  312. package/types/strapi-server.d.ts +65 -0
  313. package/server/services/providers-registry.js +0 -567
  314. package/server/utils/index.d.ts +0 -23
  315. /package/server/{bootstrap → src/bootstrap}/index.js +0 -0
  316. /package/server/{bootstrap → src/bootstrap}/users-permissions-actions.js +0 -0
  317. /package/server/{config.js → src/config.js} +0 -0
  318. /package/server/{content-types → src/content-types}/index.js +0 -0
  319. /package/server/{content-types → src/content-types}/permission/index.js +0 -0
  320. /package/server/{content-types → src/content-types}/role/index.js +0 -0
  321. /package/server/{content-types → src/content-types}/user/index.js +0 -0
  322. /package/server/{content-types → src/content-types}/user/schema-config.js +0 -0
  323. /package/server/{controllers → src/controllers}/content-manager-user.js +0 -0
  324. /package/server/{controllers → src/controllers}/index.js +0 -0
  325. /package/server/{controllers → src/controllers}/permissions.js +0 -0
  326. /package/server/{controllers → src/controllers}/role.js +0 -0
  327. /package/server/{controllers → src/controllers}/settings.js +0 -0
  328. /package/server/{controllers → src/controllers}/user.js +0 -0
  329. /package/server/{controllers → src/controllers}/validation/user.js +0 -0
  330. /package/server/{graphql → src/graphql}/index.js +0 -0
  331. /package/server/{graphql → src/graphql}/mutations/crud/role/delete-role.js +0 -0
  332. /package/server/{graphql → src/graphql}/mutations/crud/role/update-role.js +0 -0
  333. /package/server/{graphql → src/graphql}/mutations/crud/user/delete-user.js +0 -0
  334. /package/server/{graphql → src/graphql}/mutations/index.js +0 -0
  335. /package/server/{graphql → src/graphql}/queries/index.js +0 -0
  336. /package/server/{graphql → src/graphql}/queries/me.js +0 -0
  337. /package/server/{graphql → src/graphql}/resolvers-configs.js +0 -0
  338. /package/server/{graphql → src/graphql}/types/create-role-payload.js +0 -0
  339. /package/server/{graphql → src/graphql}/types/delete-role-payload.js +0 -0
  340. /package/server/{graphql → src/graphql}/types/index.js +0 -0
  341. /package/server/{graphql → src/graphql}/types/login-input.js +0 -0
  342. /package/server/{graphql → src/graphql}/types/login-payload.js +0 -0
  343. /package/server/{graphql → src/graphql}/types/me-role.js +0 -0
  344. /package/server/{graphql → src/graphql}/types/me.js +0 -0
  345. /package/server/{graphql → src/graphql}/types/password-payload.js +0 -0
  346. /package/server/{graphql → src/graphql}/types/register-input.js +0 -0
  347. /package/server/{graphql → src/graphql}/types/update-role-payload.js +0 -0
  348. /package/server/{graphql → src/graphql}/types/user-input.js +0 -0
  349. /package/server/{index.js → src/index.js} +0 -0
  350. /package/server/{middlewares → src/middlewares}/index.js +0 -0
  351. /package/server/{register.js → src/register.js} +0 -0
  352. /package/server/{routes → src/routes}/admin/index.js +0 -0
  353. /package/server/{routes → src/routes}/admin/permissions.js +0 -0
  354. /package/server/{routes → src/routes}/admin/role.js +0 -0
  355. /package/server/{routes → src/routes}/admin/settings.js +0 -0
  356. /package/server/{routes → src/routes}/content-api/auth.js +0 -0
  357. /package/server/{routes → src/routes}/content-api/index.js +0 -0
  358. /package/server/{routes → src/routes}/content-api/permissions.js +0 -0
  359. /package/server/{routes → src/routes}/content-api/role.js +0 -0
  360. /package/server/{routes → src/routes}/content-api/user.js +0 -0
  361. /package/server/{routes → src/routes}/content-api/validation.js +0 -0
  362. /package/server/{routes → src/routes}/index.js +0 -0
  363. /package/server/{services → src/services}/constants.js +0 -0
  364. /package/server/{services → src/services}/index.js +0 -0
  365. /package/server/{services → src/services}/jwt.js +0 -0
  366. /package/server/{services → src/services}/permission.js +0 -0
  367. /package/server/{utils → src/utils}/index.js +0 -0
  368. /package/server/{utils → src/utils}/refresh-cookie-options.js +0 -0
  369. /package/server/{utils → src/utils}/sanitize/index.js +0 -0
  370. /package/server/{utils → src/utils}/sanitize/visitors/index.js +0 -0
  371. /package/server/{utils → src/utils}/sanitize/visitors/remove-user-relation-from-role-entities.js +0 -0
@@ -1,567 +0,0 @@
1
- 'use strict';
2
-
3
- const { strict: assert } = require('assert');
4
- const jwt = require('jsonwebtoken');
5
- const urljoin = require('url-join');
6
- const jwkToPem = require('jwk-to-pem');
7
-
8
- const getCognitoPayload = async ({ idToken, jwksUrl, purest }) => {
9
- const {
10
- header: { kid },
11
- payload,
12
- } = jwt.decode(idToken, { complete: true });
13
-
14
- if (!payload || !kid) {
15
- throw new Error('The provided token is not valid');
16
- }
17
-
18
- const config = {
19
- cognito: {
20
- discovery: {
21
- origin: jwksUrl.origin,
22
- path: jwksUrl.pathname,
23
- },
24
- },
25
- };
26
- try {
27
- const cognito = purest({ provider: 'cognito', config });
28
- // get the JSON Web Key (JWK) for the user pool
29
- const { body: jwk } = await cognito('discovery').request();
30
- // Get the key with the same Key ID as the provided token
31
- const key = jwk.keys.find(({ kid: jwkKid }) => jwkKid === kid);
32
- const pem = jwkToPem(key);
33
-
34
- // https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html
35
- const decodedToken = await new Promise((resolve, reject) => {
36
- jwt.verify(idToken, pem, { algorithms: ['RS256'] }, (err, decodedToken) => {
37
- if (err) {
38
- reject();
39
- }
40
- resolve(decodedToken);
41
- });
42
- });
43
- return decodedToken;
44
- } catch (err) {
45
- throw new Error('There was an error verifying the token');
46
- }
47
- };
48
-
49
- const initProviders = ({ baseURL, purest }) => ({
50
- email: {
51
- enabled: true,
52
- icon: 'envelope',
53
- grantConfig: {},
54
- },
55
- discord: {
56
- enabled: false,
57
- icon: 'discord',
58
- grantConfig: {
59
- key: '',
60
- secret: '',
61
- callbackUrl: `${baseURL}/discord/callback`,
62
- scope: ['identify', 'email'],
63
- },
64
- async authCallback({ accessToken }) {
65
- const discord = purest({ provider: 'discord' });
66
-
67
- return discord
68
- .get('users/@me')
69
- .auth(accessToken)
70
- .request()
71
- .then(({ body }) => {
72
- // Combine username and discriminator (if discriminator exists and not equal to 0)
73
- const username =
74
- body.discriminator && body.discriminator !== '0'
75
- ? `${body.username}#${body.discriminator}`
76
- : body.username;
77
- return {
78
- username,
79
- email: body.email,
80
- };
81
- });
82
- },
83
- },
84
- facebook: {
85
- enabled: false,
86
- icon: 'facebook-square',
87
- grantConfig: {
88
- key: '',
89
- secret: '',
90
- callbackUrl: `${baseURL}/facebook/callback`,
91
- scope: ['email'],
92
- },
93
- async authCallback({ accessToken }) {
94
- const facebook = purest({ provider: 'facebook' });
95
-
96
- return facebook
97
- .get('me')
98
- .auth(accessToken)
99
- .qs({ fields: 'name,email' })
100
- .request()
101
- .then(({ body }) => ({
102
- username: body.name,
103
- email: body.email,
104
- }));
105
- },
106
- },
107
- google: {
108
- enabled: false,
109
- icon: 'google',
110
- grantConfig: {
111
- key: '',
112
- secret: '',
113
- callbackUrl: `${baseURL}/google/callback`,
114
- scope: ['email'],
115
- },
116
- async authCallback({ accessToken }) {
117
- const google = purest({ provider: 'google' });
118
-
119
- return google
120
- .query('oauth')
121
- .get('tokeninfo')
122
- .qs({ accessToken })
123
- .request()
124
- .then(({ body }) => ({
125
- username: body.email.split('@')[0],
126
- email: body.email,
127
- }));
128
- },
129
- },
130
- github: {
131
- enabled: false,
132
- icon: 'github',
133
- grantConfig: {
134
- key: '',
135
- secret: '',
136
- callbackUrl: `${baseURL}/github/callback`,
137
- scope: ['user', 'user:email'],
138
- },
139
- async authCallback({ accessToken }) {
140
- const github = purest({
141
- provider: 'github',
142
- defaults: {
143
- headers: {
144
- 'user-agent': 'strapi',
145
- },
146
- },
147
- });
148
-
149
- const { body: userBody } = await github.get('user').auth(accessToken).request();
150
-
151
- // This is the public email on the github profile
152
- if (userBody.email) {
153
- return {
154
- username: userBody.login,
155
- email: userBody.email,
156
- };
157
- }
158
- // Get the email with Github's user/emails API
159
- const { body: emailBody } = await github.get('user/emails').auth(accessToken).request();
160
-
161
- return {
162
- username: userBody.login,
163
- email: Array.isArray(emailBody)
164
- ? emailBody.find((email) => email.primary === true).email
165
- : null,
166
- };
167
- },
168
- },
169
- microsoft: {
170
- enabled: false,
171
- icon: 'windows',
172
- grantConfig: {
173
- key: '',
174
- secret: '',
175
- callbackUrl: `${baseURL}/microsoft/callback`,
176
- scope: ['user.read'],
177
- },
178
- async authCallback({ accessToken }) {
179
- const microsoft = purest({ provider: 'microsoft' });
180
-
181
- return microsoft
182
- .get('me')
183
- .auth(accessToken)
184
- .request()
185
- .then(({ body }) => ({
186
- username: body.userPrincipalName,
187
- email: body.userPrincipalName,
188
- }));
189
- },
190
- },
191
-
192
- twitter: {
193
- enabled: false,
194
- icon: 'twitter',
195
- grantConfig: {
196
- key: '',
197
- secret: '',
198
- callbackUrl: `${baseURL}/twitter/callback`,
199
- },
200
- async authCallback({ accessToken, query, providers }) {
201
- const twitter = purest({
202
- provider: 'twitter',
203
- defaults: {
204
- oauth: {
205
- consumer_key: providers.twitter.key,
206
- consumer_secret: providers.twitter.secret,
207
- },
208
- },
209
- });
210
-
211
- return twitter
212
- .get('account/verify_credentials')
213
- .auth(accessToken, query.access_secret)
214
- .qs({ screen_name: query['raw[screen_name]'], include_email: 'true' })
215
- .request()
216
- .then(({ body }) => ({
217
- username: body.screen_name,
218
- email: body.email,
219
- }));
220
- },
221
- },
222
- instagram: {
223
- enabled: false,
224
- icon: 'instagram',
225
- grantConfig: {
226
- key: '',
227
- secret: '',
228
- callbackUrl: `${baseURL}/instagram/callback`,
229
- scope: ['user_profile'],
230
- },
231
- async authCallback({ accessToken }) {
232
- const instagram = purest({ provider: 'instagram' });
233
-
234
- return instagram
235
- .get('me')
236
- .auth(accessToken)
237
- .qs({ fields: 'id,username' })
238
- .request()
239
- .then(({ body }) => ({
240
- username: body.username,
241
- email: `${body.username}@strapi.io`, // dummy email as Instagram does not provide user email
242
- }));
243
- },
244
- },
245
- vk: {
246
- enabled: false,
247
- icon: 'vk',
248
- grantConfig: {
249
- key: '',
250
- secret: '',
251
- callbackUrl: `${baseURL}/vk/callback`,
252
- scope: ['email'],
253
- },
254
- async authCallback({ accessToken, query }) {
255
- const vk = purest({ provider: 'vk' });
256
-
257
- return vk
258
- .get('users')
259
- .auth(accessToken)
260
- .qs({ id: query.raw.user_id, v: '5.122' })
261
- .request()
262
- .then(({ body }) => ({
263
- username: `${body.response[0].last_name} ${body.response[0].first_name}`,
264
- email: query.raw.email,
265
- }));
266
- },
267
- },
268
-
269
- twitch: {
270
- enabled: false,
271
- icon: 'twitch',
272
- grantConfig: {
273
- key: '',
274
- secret: '',
275
- callbackUrl: `${baseURL}/twitch/callback`,
276
- scope: ['user:read:email'],
277
- },
278
- async authCallback({ accessToken, providers }) {
279
- const twitch = purest({
280
- provider: 'twitch',
281
- config: {
282
- twitch: {
283
- default: {
284
- origin: 'https://api.twitch.tv',
285
- path: 'helix/{path}',
286
- headers: {
287
- Authorization: 'Bearer {auth}',
288
- 'Client-Id': '{auth}',
289
- },
290
- },
291
- },
292
- },
293
- });
294
-
295
- return twitch
296
- .get('users')
297
- .auth(accessToken, providers.twitch.key)
298
- .request()
299
- .then(({ body }) => ({
300
- username: body.data[0].login,
301
- email: body.data[0].email,
302
- }));
303
- },
304
- },
305
-
306
- linkedin: {
307
- enabled: false,
308
- icon: 'linkedin',
309
- grantConfig: {
310
- key: '',
311
- secret: '',
312
- callbackUrl: `${baseURL}/linkedin/callback`,
313
- scope: ['r_liteprofile', 'r_emailaddress'],
314
- },
315
- async authCallback({ accessToken }) {
316
- const linkedIn = purest({ provider: 'linkedin' });
317
- const {
318
- body: { localizedFirstName },
319
- } = await linkedIn.get('me').auth(accessToken).request();
320
- const {
321
- body: { elements },
322
- } = await linkedIn
323
- .get('emailAddress?q=members&projection=(elements*(handle~))')
324
- .auth(accessToken)
325
- .request();
326
-
327
- const email = elements[0]['handle~'];
328
-
329
- return {
330
- username: localizedFirstName,
331
- email: email.emailAddress,
332
- };
333
- },
334
- },
335
-
336
- cognito: {
337
- enabled: false,
338
- icon: 'aws',
339
- grantConfig: {
340
- key: '',
341
- secret: '',
342
- subdomain: 'my.subdomain.com',
343
- callback: `${baseURL}/cognito/callback`,
344
- scope: ['email', 'openid', 'profile'],
345
- },
346
- async authCallback({ query, providers }) {
347
- const jwksUrl = new URL(providers.cognito.jwksurl);
348
- const idToken = query.id_token;
349
- const tokenPayload = await getCognitoPayload({ idToken, jwksUrl, purest });
350
- return {
351
- username: tokenPayload['cognito:username'],
352
- email: tokenPayload.email,
353
- };
354
- },
355
- },
356
-
357
- reddit: {
358
- enabled: false,
359
- icon: 'reddit',
360
- grantConfig: {
361
- key: '',
362
- secret: '',
363
- callback: `${baseURL}/reddit/callback`,
364
- scope: ['identity'],
365
- },
366
- async authCallback({ accessToken }) {
367
- const reddit = purest({
368
- provider: 'reddit',
369
- config: {
370
- reddit: {
371
- default: {
372
- origin: 'https://oauth.reddit.com',
373
- path: 'api/{version}/{path}',
374
- version: 'v1',
375
- headers: {
376
- Authorization: 'Bearer {auth}',
377
- 'user-agent': 'strapi',
378
- },
379
- },
380
- },
381
- },
382
- });
383
-
384
- return reddit
385
- .get('me')
386
- .auth(accessToken)
387
- .request()
388
- .then(({ body }) => ({
389
- username: body.name,
390
- email: `${body.name}@strapi.io`, // dummy email as Reddit does not provide user email
391
- }));
392
- },
393
- },
394
-
395
- auth0: {
396
- enabled: false,
397
- icon: '',
398
- grantConfig: {
399
- key: '',
400
- secret: '',
401
- subdomain: 'my-tenant.eu',
402
- callback: `${baseURL}/auth0/callback`,
403
- scope: ['openid', 'email', 'profile'],
404
- },
405
- async authCallback({ accessToken, providers }) {
406
- const auth0 = purest({ provider: 'auth0' });
407
-
408
- return auth0
409
- .get('userinfo')
410
- .subdomain(providers.auth0.subdomain)
411
- .auth(accessToken)
412
- .request()
413
- .then(({ body }) => {
414
- const username = body.username || body.nickname || body.name || body.email.split('@')[0];
415
- const email = body.email || `${username.replace(/\s+/g, '.')}@strapi.io`;
416
-
417
- return {
418
- username,
419
- email,
420
- };
421
- });
422
- },
423
- },
424
-
425
- cas: {
426
- enabled: false,
427
- icon: 'book',
428
- grantConfig: {
429
- key: '',
430
- secret: '',
431
- callback: `${baseURL}/cas/callback`,
432
- scope: ['openid email'], // scopes should be space delimited
433
- subdomain: 'my.subdomain.com/cas',
434
- },
435
- async authCallback({ accessToken, providers }) {
436
- const cas = purest({ provider: 'cas' });
437
-
438
- return cas
439
- .get('oidc/profile')
440
- .subdomain(providers.cas.subdomain)
441
- .auth(accessToken)
442
- .request()
443
- .then(({ body }) => {
444
- // CAS attribute may be in body.attributes or "FLAT", depending on CAS config
445
- const username = body.attributes
446
- ? body.attributes.strapiusername || body.id || body.sub
447
- : body.strapiusername || body.id || body.sub;
448
- const email = body.attributes
449
- ? body.attributes.strapiemail || body.attributes.email
450
- : body.strapiemail || body.email;
451
- if (!username || !email) {
452
- strapi.log.warn(
453
- `CAS Response Body did not contain required attributes: ${JSON.stringify(body)}`
454
- );
455
- }
456
- return {
457
- username,
458
- email,
459
- };
460
- });
461
- },
462
- },
463
-
464
- patreon: {
465
- enabled: false,
466
- icon: '',
467
- grantConfig: {
468
- key: '',
469
- secret: '',
470
- callback: `${baseURL}/patreon/callback`,
471
- scope: ['identity', 'identity[email]'],
472
- },
473
- async authCallback({ accessToken }) {
474
- const patreon = purest({
475
- provider: 'patreon',
476
- config: {
477
- patreon: {
478
- default: {
479
- origin: 'https://www.patreon.com',
480
- path: 'api/oauth2/{path}',
481
- headers: {
482
- authorization: 'Bearer {auth}',
483
- },
484
- },
485
- },
486
- },
487
- });
488
-
489
- return patreon
490
- .get('v2/identity')
491
- .auth(accessToken)
492
- .qs(new URLSearchParams({ 'fields[user]': 'full_name,email' }).toString())
493
- .request()
494
- .then(({ body }) => {
495
- const patreonData = body.data.attributes;
496
- return {
497
- username: patreonData.full_name,
498
- email: patreonData.email,
499
- };
500
- });
501
- },
502
- },
503
- keycloak: {
504
- enabled: false,
505
- icon: '',
506
- grantConfig: {
507
- key: '',
508
- secret: '',
509
- subdomain: 'myKeycloakProvider.com/realms/myrealm',
510
- callback: `${baseURL}/keycloak/callback`,
511
- scope: ['openid', 'email', 'profile'],
512
- },
513
- async authCallback({ accessToken, providers }) {
514
- const keycloak = purest({ provider: 'keycloak' });
515
-
516
- return keycloak
517
- .subdomain(providers.keycloak.subdomain)
518
- .get('protocol/openid-connect/userinfo')
519
- .auth(accessToken)
520
- .request()
521
- .then(({ body }) => {
522
- return {
523
- username: body.preferred_username,
524
- email: body.email,
525
- };
526
- });
527
- },
528
- },
529
- });
530
-
531
- module.exports = () => {
532
- const purest = require('purest');
533
-
534
- const apiPrefix = strapi.config.get('api.rest.prefix');
535
- const baseURL = urljoin(strapi.config.server.url, apiPrefix, 'auth');
536
-
537
- const authProviders = initProviders({ baseURL, purest });
538
-
539
- /**
540
- * @public
541
- */
542
- return {
543
- getAll() {
544
- return authProviders;
545
- },
546
- get(name) {
547
- return authProviders[name];
548
- },
549
- add(name, config) {
550
- authProviders[name] = config;
551
- },
552
- remove(name) {
553
- delete authProviders[name];
554
- },
555
-
556
- /**
557
- * @internal
558
- */
559
- async run({ provider, accessToken, query, providers }) {
560
- const authProvider = authProviders[provider];
561
-
562
- assert(authProvider, 'Unknown auth provider');
563
-
564
- return authProvider.authCallback({ accessToken, query, providers, purest });
565
- },
566
- };
567
- };
@@ -1,23 +0,0 @@
1
- import * as usersPermissions from '../services/users-permissions';
2
- import * as user from '../services/user';
3
- import * as role from '../services/role';
4
- import * as jwt from '../services/jwt';
5
- import * as providers from '../services/providers';
6
- import * as providersRegistry from '../services/providers-registry';
7
- import * as permission from '../services/permission';
8
-
9
- type S = {
10
- ['users-permissions']: typeof usersPermissions;
11
- ['role']: typeof role;
12
- user: typeof user;
13
- jwt: typeof jwt;
14
- providers: typeof providers;
15
- ['providers-registry']: typeof providersRegistry;
16
- permission: typeof permission;
17
- };
18
-
19
- export function getService<T extends keyof S>(name: T): ReturnType<S[T]>;
20
-
21
- export function isUsernameTaken(username: string): Promise<boolean>;
22
-
23
- export function findValidUsername(basename: string): Promise<string>;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes