@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.
- package/.eslintrc.cjs +2 -0
- package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +3 -1
- package/admin/src/pages/Roles/pages/EditPage.jsx +1 -1
- package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
- package/admin/src/translations/en.json +1 -0
- package/admin/src/translations/es.json +1 -1
- package/admin/src/translations/ko.json +2 -1
- package/admin/src/translations/sv.json +1 -1
- package/admin/src/translations/uk.json +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.js +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.mjs +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +1 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +1 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +1 -1
- package/dist/admin/translations/es.json.mjs +1 -1
- package/dist/admin/translations/ko.json.js +2 -1
- package/dist/admin/translations/ko.json.js.map +1 -1
- package/dist/admin/translations/ko.json.mjs +2 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -1
- package/dist/admin/translations/sv.json.js +1 -1
- package/dist/admin/translations/sv.json.mjs +1 -1
- package/dist/admin/translations/uk.json.js +1 -1
- package/dist/admin/translations/uk.json.mjs +1 -1
- package/dist/server/_virtual/_node_crypto.js +10 -0
- package/dist/server/_virtual/_node_crypto.js.map +1 -0
- package/dist/server/_virtual/_node_crypto.mjs +7 -0
- package/dist/server/_virtual/_node_crypto.mjs.map +1 -0
- package/dist/server/_virtual/_node_url.js +10 -0
- package/dist/server/_virtual/_node_url.js.map +1 -0
- package/dist/server/_virtual/_node_url.mjs +7 -0
- package/dist/server/_virtual/_node_url.mjs.map +1 -0
- package/dist/server/bootstrap/index.js.map +1 -1
- package/dist/server/bootstrap/index.mjs.map +1 -1
- package/dist/server/bootstrap/users-permissions-actions.js.map +1 -1
- package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/content-types/index.js.map +1 -1
- package/dist/server/content-types/index.mjs.map +1 -1
- package/dist/server/content-types/permission/index.js.map +1 -1
- package/dist/server/content-types/permission/index.mjs.map +1 -1
- package/dist/server/content-types/role/index.js.map +1 -1
- package/dist/server/content-types/role/index.mjs.map +1 -1
- package/dist/server/content-types/user/index.js.map +1 -1
- package/dist/server/content-types/user/index.mjs.map +1 -1
- package/dist/server/content-types/user/schema-config.js.map +1 -1
- package/dist/server/content-types/user/schema-config.mjs.map +1 -1
- package/dist/server/controllers/auth.js +38 -30
- package/dist/server/controllers/auth.js.map +1 -1
- package/dist/server/controllers/auth.mjs +38 -28
- package/dist/server/controllers/auth.mjs.map +1 -1
- package/dist/server/controllers/content-manager-user.js.map +1 -1
- package/dist/server/controllers/content-manager-user.mjs.map +1 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/permissions.js.map +1 -1
- package/dist/server/controllers/permissions.mjs.map +1 -1
- package/dist/server/controllers/role.js.map +1 -1
- package/dist/server/controllers/role.mjs.map +1 -1
- package/dist/server/controllers/settings.js.map +1 -1
- package/dist/server/controllers/settings.mjs.map +1 -1
- package/dist/server/controllers/user.js.map +1 -1
- package/dist/server/controllers/user.mjs.map +1 -1
- package/dist/server/controllers/validation/auth.js +6 -6
- package/dist/server/controllers/validation/auth.js.map +1 -1
- package/dist/server/controllers/validation/auth.mjs +6 -6
- package/dist/server/controllers/validation/auth.mjs.map +1 -1
- package/dist/server/controllers/validation/email-template.js +1 -4
- package/dist/server/controllers/validation/email-template.js.map +1 -1
- package/dist/server/controllers/validation/email-template.mjs +1 -3
- package/dist/server/controllers/validation/email-template.mjs.map +1 -1
- package/dist/server/controllers/validation/user.js.map +1 -1
- package/dist/server/controllers/validation/user.mjs.map +1 -1
- package/dist/server/graphql/index.js.map +1 -1
- package/dist/server/graphql/index.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.js +7 -4
- package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.js +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.js +7 -4
- package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/login.js +10 -7
- package/dist/server/graphql/mutations/auth/login.js.map +1 -1
- package/dist/server/graphql/mutations/auth/login.mjs +10 -7
- package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/rate-limit.js +63 -0
- package/dist/server/graphql/mutations/auth/rate-limit.js.map +1 -0
- package/dist/server/graphql/mutations/auth/rate-limit.mjs +61 -0
- package/dist/server/graphql/mutations/auth/rate-limit.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/register.js +7 -4
- package/dist/server/graphql/mutations/auth/register.js.map +1 -1
- package/dist/server/graphql/mutations/auth/register.mjs +7 -4
- package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.js +7 -4
- package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.js +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.mjs +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.js +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.mjs +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.js +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.mjs +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/index.js.map +1 -1
- package/dist/server/graphql/mutations/index.mjs.map +1 -1
- package/dist/server/graphql/queries/index.js.map +1 -1
- package/dist/server/graphql/queries/index.mjs.map +1 -1
- package/dist/server/graphql/queries/me.js.map +1 -1
- package/dist/server/graphql/queries/me.mjs.map +1 -1
- package/dist/server/graphql/resolvers-configs.js.map +1 -1
- package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
- package/dist/server/graphql/types/create-role-payload.js.map +1 -1
- package/dist/server/graphql/types/create-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/delete-role-payload.js.map +1 -1
- package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/index.js.map +1 -1
- package/dist/server/graphql/types/index.mjs.map +1 -1
- package/dist/server/graphql/types/login-input.js.map +1 -1
- package/dist/server/graphql/types/login-input.mjs.map +1 -1
- package/dist/server/graphql/types/login-payload.js.map +1 -1
- package/dist/server/graphql/types/login-payload.mjs.map +1 -1
- package/dist/server/graphql/types/me-role.js.map +1 -1
- package/dist/server/graphql/types/me-role.mjs.map +1 -1
- package/dist/server/graphql/types/me.js.map +1 -1
- package/dist/server/graphql/types/me.mjs.map +1 -1
- package/dist/server/graphql/types/password-payload.js.map +1 -1
- package/dist/server/graphql/types/password-payload.mjs.map +1 -1
- package/dist/server/graphql/types/register-input.js.map +1 -1
- package/dist/server/graphql/types/register-input.mjs.map +1 -1
- package/dist/server/graphql/types/update-role-payload.js.map +1 -1
- package/dist/server/graphql/types/update-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/user-input.js.map +1 -1
- package/dist/server/graphql/types/user-input.mjs.map +1 -1
- package/dist/server/graphql/utils.js +4 -4
- package/dist/server/graphql/utils.js.map +1 -1
- package/dist/server/graphql/utils.mjs +4 -4
- package/dist/server/graphql/utils.mjs.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +3 -3
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/index2.js +8 -8
- package/dist/server/index2.js.map +1 -1
- package/dist/server/index2.mjs +8 -8
- package/dist/server/index2.mjs.map +1 -1
- package/dist/server/middlewares/index.js.map +1 -1
- package/dist/server/middlewares/index.mjs.map +1 -1
- package/dist/server/middlewares/rateLimit.js +5 -5
- package/dist/server/middlewares/rateLimit.js.map +1 -1
- package/dist/server/middlewares/rateLimit.mjs +5 -5
- package/dist/server/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/admin/index.js.map +1 -1
- package/dist/server/routes/admin/index.mjs.map +1 -1
- package/dist/server/routes/admin/permissions.js.map +1 -1
- package/dist/server/routes/admin/permissions.mjs.map +1 -1
- package/dist/server/routes/admin/role.js.map +1 -1
- package/dist/server/routes/admin/role.mjs.map +1 -1
- package/dist/server/routes/admin/settings.js.map +1 -1
- package/dist/server/routes/admin/settings.mjs.map +1 -1
- package/dist/server/routes/content-api/auth.js.map +1 -1
- package/dist/server/routes/content-api/auth.mjs.map +1 -1
- package/dist/server/routes/content-api/index.js.map +1 -1
- package/dist/server/routes/content-api/index.mjs.map +1 -1
- package/dist/server/routes/content-api/permissions.js.map +1 -1
- package/dist/server/routes/content-api/permissions.mjs.map +1 -1
- package/dist/server/routes/content-api/role.js.map +1 -1
- package/dist/server/routes/content-api/role.mjs.map +1 -1
- package/dist/server/routes/content-api/user.js.map +1 -1
- package/dist/server/routes/content-api/user.mjs.map +1 -1
- package/dist/server/routes/content-api/validation.js.map +1 -1
- package/dist/server/routes/content-api/validation.mjs.map +1 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/constants.js.map +1 -1
- package/dist/server/services/constants.mjs.map +1 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/jwt.js.map +1 -1
- package/dist/server/services/jwt.mjs.map +1 -1
- package/dist/server/services/permission.js.map +1 -1
- package/dist/server/services/permission.mjs.map +1 -1
- package/dist/server/services/providers-registry.js +188 -248
- package/dist/server/services/providers-registry.js.map +1 -1
- package/dist/server/services/providers-registry.mjs +188 -245
- package/dist/server/services/providers-registry.mjs.map +1 -1
- package/dist/server/services/providers.js +15 -11
- package/dist/server/services/providers.js.map +1 -1
- package/dist/server/services/providers.mjs +14 -10
- package/dist/server/services/providers.mjs.map +1 -1
- package/dist/server/services/role.js +2 -2
- package/dist/server/services/role.js.map +1 -1
- package/dist/server/services/role.mjs +2 -2
- package/dist/server/services/role.mjs.map +1 -1
- package/dist/server/services/user.js +14 -14
- package/dist/server/services/user.js.map +1 -1
- package/dist/server/services/user.mjs +13 -13
- package/dist/server/services/user.mjs.map +1 -1
- package/dist/server/services/users-permissions.js +17 -20
- package/dist/server/services/users-permissions.js.map +1 -1
- package/dist/server/services/users-permissions.mjs +16 -18
- package/dist/server/services/users-permissions.mjs.map +1 -1
- package/dist/server/strategies/users-permissions.js +9 -8
- package/dist/server/strategies/users-permissions.js.map +1 -1
- package/dist/server/strategies/users-permissions.mjs +9 -8
- package/dist/server/strategies/users-permissions.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/server/utils/oauth-connect/index.js +241 -0
- package/dist/server/utils/oauth-connect/index.js.map +1 -0
- package/dist/server/utils/oauth-connect/index.mjs +235 -0
- package/dist/server/utils/oauth-connect/index.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/oauth1.js +138 -0
- package/dist/server/utils/oauth-connect/oauth1.js.map +1 -0
- package/dist/server/utils/oauth-connect/oauth1.mjs +136 -0
- package/dist/server/utils/oauth-connect/oauth1.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/oauth2.js +117 -0
- package/dist/server/utils/oauth-connect/oauth2.js.map +1 -0
- package/dist/server/utils/oauth-connect/oauth2.mjs +115 -0
- package/dist/server/utils/oauth-connect/oauth2.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/providers.js +109 -0
- package/dist/server/utils/oauth-connect/providers.js.map +1 -0
- package/dist/server/utils/oauth-connect/providers.mjs +107 -0
- package/dist/server/utils/oauth-connect/providers.mjs.map +1 -0
- package/dist/server/utils/provider-http.js +52 -0
- package/dist/server/utils/provider-http.js.map +1 -0
- package/dist/server/utils/provider-http.mjs +50 -0
- package/dist/server/utils/provider-http.mjs.map +1 -0
- package/dist/server/utils/refresh-cookie-options.js.map +1 -1
- package/dist/server/utils/refresh-cookie-options.mjs.map +1 -1
- package/dist/server/utils/sanitize/index.js.map +1 -1
- package/dist/server/utils/sanitize/index.mjs.map +1 -1
- package/dist/server/utils/sanitize/sanitizers.js +1 -1
- package/dist/server/utils/sanitize/sanitizers.js.map +1 -1
- package/dist/server/utils/sanitize/sanitizers.mjs +1 -1
- package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -1
- package/dist/server/utils/sanitize/visitors/index.js.map +1 -1
- package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -1
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -1
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -1
- package/dist/server/utils/trim-grant-session-response.js +67 -0
- package/dist/server/utils/trim-grant-session-response.js.map +1 -0
- package/dist/server/utils/trim-grant-session-response.mjs +65 -0
- package/dist/server/utils/trim-grant-session-response.mjs.map +1 -0
- package/dist/server/utils/verify-jwt-with-jwks.js +60 -0
- package/dist/server/utils/verify-jwt-with-jwks.js.map +1 -0
- package/dist/server/utils/verify-jwt-with-jwks.mjs +54 -0
- package/dist/server/utils/verify-jwt-with-jwks.mjs.map +1 -0
- package/jsconfig.json +7 -0
- package/package.json +28 -18
- package/rollup.config.mjs +2 -2
- package/server/{controllers → src/controllers}/auth.js +36 -29
- package/server/{controllers → src/controllers}/validation/auth.js +6 -6
- package/server/{controllers → src/controllers}/validation/email-template.js +1 -2
- package/server/{graphql → src/graphql}/mutations/auth/change-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/email-confirmation.js +1 -1
- package/server/{graphql → src/graphql}/mutations/auth/forgot-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/login.js +11 -7
- package/server/src/graphql/mutations/auth/rate-limit.js +62 -0
- package/server/{graphql → src/graphql}/mutations/auth/register.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/reset-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/crud/role/create-role.js +1 -1
- package/server/{graphql → src/graphql}/mutations/crud/user/create-user.js +1 -1
- package/server/{graphql → src/graphql}/mutations/crud/user/update-user.js +1 -1
- package/server/{graphql → src/graphql}/utils.js +3 -3
- package/server/{middlewares → src/middlewares}/rateLimit.js +4 -4
- package/server/src/services/providers-registry.js +487 -0
- package/server/{services → src/services}/providers.js +9 -7
- package/server/{services → src/services}/role.js +2 -2
- package/server/{services → src/services}/user.js +16 -6
- package/server/{services → src/services}/users-permissions.js +14 -16
- package/server/{strategies → src/strategies}/users-permissions.js +14 -10
- package/server/src/utils/oauth-connect/index.js +262 -0
- package/server/src/utils/oauth-connect/oauth1.js +169 -0
- package/server/src/utils/oauth-connect/oauth2.js +123 -0
- package/server/src/utils/oauth-connect/providers.js +100 -0
- package/server/src/utils/provider-http.js +49 -0
- package/server/{utils → src/utils}/sanitize/sanitizers.js +1 -1
- package/server/src/utils/trim-grant-session-response.js +70 -0
- package/server/src/utils/verify-jwt-with-jwks.js +43 -0
- package/types/strapi-server.d.ts +65 -0
- package/server/services/providers-registry.js +0 -567
- package/server/utils/index.d.ts +0 -23
- /package/server/{bootstrap → src/bootstrap}/index.js +0 -0
- /package/server/{bootstrap → src/bootstrap}/users-permissions-actions.js +0 -0
- /package/server/{config.js → src/config.js} +0 -0
- /package/server/{content-types → src/content-types}/index.js +0 -0
- /package/server/{content-types → src/content-types}/permission/index.js +0 -0
- /package/server/{content-types → src/content-types}/role/index.js +0 -0
- /package/server/{content-types → src/content-types}/user/index.js +0 -0
- /package/server/{content-types → src/content-types}/user/schema-config.js +0 -0
- /package/server/{controllers → src/controllers}/content-manager-user.js +0 -0
- /package/server/{controllers → src/controllers}/index.js +0 -0
- /package/server/{controllers → src/controllers}/permissions.js +0 -0
- /package/server/{controllers → src/controllers}/role.js +0 -0
- /package/server/{controllers → src/controllers}/settings.js +0 -0
- /package/server/{controllers → src/controllers}/user.js +0 -0
- /package/server/{controllers → src/controllers}/validation/user.js +0 -0
- /package/server/{graphql → src/graphql}/index.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/role/delete-role.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/role/update-role.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/user/delete-user.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/index.js +0 -0
- /package/server/{graphql → src/graphql}/queries/index.js +0 -0
- /package/server/{graphql → src/graphql}/queries/me.js +0 -0
- /package/server/{graphql → src/graphql}/resolvers-configs.js +0 -0
- /package/server/{graphql → src/graphql}/types/create-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/delete-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/index.js +0 -0
- /package/server/{graphql → src/graphql}/types/login-input.js +0 -0
- /package/server/{graphql → src/graphql}/types/login-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/me-role.js +0 -0
- /package/server/{graphql → src/graphql}/types/me.js +0 -0
- /package/server/{graphql → src/graphql}/types/password-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/register-input.js +0 -0
- /package/server/{graphql → src/graphql}/types/update-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/user-input.js +0 -0
- /package/server/{index.js → src/index.js} +0 -0
- /package/server/{middlewares → src/middlewares}/index.js +0 -0
- /package/server/{register.js → src/register.js} +0 -0
- /package/server/{routes → src/routes}/admin/index.js +0 -0
- /package/server/{routes → src/routes}/admin/permissions.js +0 -0
- /package/server/{routes → src/routes}/admin/role.js +0 -0
- /package/server/{routes → src/routes}/admin/settings.js +0 -0
- /package/server/{routes → src/routes}/content-api/auth.js +0 -0
- /package/server/{routes → src/routes}/content-api/index.js +0 -0
- /package/server/{routes → src/routes}/content-api/permissions.js +0 -0
- /package/server/{routes → src/routes}/content-api/role.js +0 -0
- /package/server/{routes → src/routes}/content-api/user.js +0 -0
- /package/server/{routes → src/routes}/content-api/validation.js +0 -0
- /package/server/{routes → src/routes}/index.js +0 -0
- /package/server/{services → src/services}/constants.js +0 -0
- /package/server/{services → src/services}/index.js +0 -0
- /package/server/{services → src/services}/jwt.js +0 -0
- /package/server/{services → src/services}/permission.js +0 -0
- /package/server/{utils → src/utils}/index.js +0 -0
- /package/server/{utils → src/utils}/refresh-cookie-options.js +0 -0
- /package/server/{utils → src/utils}/sanitize/index.js +0 -0
- /package/server/{utils → src/utils}/sanitize/visitors/index.js +0 -0
- /package/server/{utils → src/utils}/sanitize/visitors/remove-user-relation-from-role-entities.js +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import require$$0 from 'assert';
|
|
2
|
-
import require$$1 from '
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
2
|
+
import require$$1 from 'url-join';
|
|
3
|
+
import { __require as requireVerifyJwtWithJwks } from '../utils/verify-jwt-with-jwks.mjs';
|
|
4
|
+
import { __require as requireProviderHttp } from '../utils/provider-http.mjs';
|
|
5
|
+
import { __require as requireOauth1 } from '../utils/oauth-connect/oauth1.mjs';
|
|
6
6
|
|
|
7
7
|
var providersRegistry;
|
|
8
8
|
var hasRequiredProvidersRegistry;
|
|
@@ -10,53 +10,10 @@ function requireProvidersRegistry() {
|
|
|
10
10
|
if (hasRequiredProvidersRegistry) return providersRegistry;
|
|
11
11
|
hasRequiredProvidersRegistry = 1;
|
|
12
12
|
const { strict: assert } = require$$0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const { header: { kid }, payload } = jwt.decode(idToken, {
|
|
18
|
-
complete: true
|
|
19
|
-
});
|
|
20
|
-
if (!payload || !kid) {
|
|
21
|
-
throw new Error('The provided token is not valid');
|
|
22
|
-
}
|
|
23
|
-
const config = {
|
|
24
|
-
cognito: {
|
|
25
|
-
discovery: {
|
|
26
|
-
origin: jwksUrl.origin,
|
|
27
|
-
path: jwksUrl.pathname
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
try {
|
|
32
|
-
const cognito = purest({
|
|
33
|
-
provider: 'cognito',
|
|
34
|
-
config
|
|
35
|
-
});
|
|
36
|
-
// get the JSON Web Key (JWK) for the user pool
|
|
37
|
-
const { body: jwk } = await cognito('discovery').request();
|
|
38
|
-
// Get the key with the same Key ID as the provided token
|
|
39
|
-
const key = jwk.keys.find(({ kid: jwkKid })=>jwkKid === kid);
|
|
40
|
-
const pem = jwkToPem(key);
|
|
41
|
-
// https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html
|
|
42
|
-
const decodedToken = await new Promise((resolve, reject)=>{
|
|
43
|
-
jwt.verify(idToken, pem, {
|
|
44
|
-
algorithms: [
|
|
45
|
-
'RS256'
|
|
46
|
-
]
|
|
47
|
-
}, (err, decodedToken)=>{
|
|
48
|
-
if (err) {
|
|
49
|
-
reject();
|
|
50
|
-
}
|
|
51
|
-
resolve(decodedToken);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
return decodedToken;
|
|
55
|
-
} catch (err) {
|
|
56
|
-
throw new Error('There was an error verifying the token');
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const initProviders = ({ baseURL, purest })=>({
|
|
13
|
+
const urljoin = require$$1;
|
|
14
|
+
const { verifyJwtWithJwks } = requireVerifyJwtWithJwks();
|
|
15
|
+
const { bearerGet, fetchJson } = requireProviderHttp();
|
|
16
|
+
const initProviders = ({ baseURL })=>({
|
|
60
17
|
email: {
|
|
61
18
|
enabled: true,
|
|
62
19
|
icon: 'envelope',
|
|
@@ -75,17 +32,15 @@ function requireProvidersRegistry() {
|
|
|
75
32
|
]
|
|
76
33
|
},
|
|
77
34
|
async authCallback ({ accessToken }) {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
};
|
|
88
|
-
});
|
|
35
|
+
const { body } = await bearerGet('https://discord.com/api/users/@me', accessToken);
|
|
36
|
+
if (body.verified !== true) {
|
|
37
|
+
throw new Error('Email not verified by Discord');
|
|
38
|
+
}
|
|
39
|
+
const username = body.discriminator && body.discriminator !== '0' ? `${body.username}#${body.discriminator}` : body.username;
|
|
40
|
+
return {
|
|
41
|
+
username,
|
|
42
|
+
email: body.email
|
|
43
|
+
};
|
|
89
44
|
}
|
|
90
45
|
},
|
|
91
46
|
facebook: {
|
|
@@ -100,15 +55,18 @@ function requireProvidersRegistry() {
|
|
|
100
55
|
]
|
|
101
56
|
},
|
|
102
57
|
async authCallback ({ accessToken }) {
|
|
103
|
-
const
|
|
104
|
-
|
|
58
|
+
const { body } = await bearerGet('https://graph.facebook.com/me', accessToken, {
|
|
59
|
+
qs: {
|
|
60
|
+
fields: 'name,email'
|
|
61
|
+
}
|
|
105
62
|
});
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
63
|
+
if (!body.email) {
|
|
64
|
+
throw new Error('Email not verified by Facebook');
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
username: body.name,
|
|
68
|
+
email: body.email
|
|
69
|
+
};
|
|
112
70
|
}
|
|
113
71
|
},
|
|
114
72
|
google: {
|
|
@@ -123,15 +81,15 @@ function requireProvidersRegistry() {
|
|
|
123
81
|
]
|
|
124
82
|
},
|
|
125
83
|
async authCallback ({ accessToken }) {
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
84
|
+
const { body } = await fetchJson(`https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(accessToken)}`);
|
|
85
|
+
const verified = body.verified_email ?? body.email_verified;
|
|
86
|
+
if (verified !== true && verified !== 'true') {
|
|
87
|
+
throw new Error('Email not verified by Google');
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
username: body.email.split('@')[0],
|
|
91
|
+
email: body.email
|
|
92
|
+
};
|
|
135
93
|
}
|
|
136
94
|
},
|
|
137
95
|
github: {
|
|
@@ -147,27 +105,33 @@ function requireProvidersRegistry() {
|
|
|
147
105
|
]
|
|
148
106
|
},
|
|
149
107
|
async authCallback ({ accessToken }) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
108
|
+
const { body: userBody } = await bearerGet('https://api.github.com/user', accessToken, {
|
|
109
|
+
headers: {
|
|
110
|
+
'user-agent': 'strapi'
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
const { body: emailBody } = await bearerGet('https://api.github.com/user/emails', accessToken, {
|
|
114
|
+
headers: {
|
|
115
|
+
'user-agent': 'strapi'
|
|
156
116
|
}
|
|
157
117
|
});
|
|
158
|
-
const { body: userBody } = await github.get('user').auth(accessToken).request();
|
|
159
|
-
// This is the public email on the github profile
|
|
160
118
|
if (userBody.email) {
|
|
119
|
+
const verifiedPublicEmail = Array.isArray(emailBody) ? emailBody.find((entry)=>entry.email === userBody.email && entry.verified === true) : null;
|
|
120
|
+
if (!verifiedPublicEmail) {
|
|
121
|
+
throw new Error('Email not verified by GitHub');
|
|
122
|
+
}
|
|
161
123
|
return {
|
|
162
124
|
username: userBody.login,
|
|
163
125
|
email: userBody.email
|
|
164
126
|
};
|
|
165
127
|
}
|
|
166
|
-
|
|
167
|
-
|
|
128
|
+
const primaryEmail = Array.isArray(emailBody) ? emailBody.find((email)=>email.primary === true) : null;
|
|
129
|
+
if (!primaryEmail || primaryEmail.verified !== true) {
|
|
130
|
+
throw new Error('Email not verified by GitHub');
|
|
131
|
+
}
|
|
168
132
|
return {
|
|
169
133
|
username: userBody.login,
|
|
170
|
-
email:
|
|
134
|
+
email: primaryEmail.email
|
|
171
135
|
};
|
|
172
136
|
}
|
|
173
137
|
},
|
|
@@ -183,13 +147,11 @@ function requireProvidersRegistry() {
|
|
|
183
147
|
]
|
|
184
148
|
},
|
|
185
149
|
async authCallback ({ accessToken }) {
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
email: body.userPrincipalName
|
|
192
|
-
}));
|
|
150
|
+
const { body } = await bearerGet('https://graph.microsoft.com/v1.0/me', accessToken);
|
|
151
|
+
return {
|
|
152
|
+
username: body.userPrincipalName,
|
|
153
|
+
email: body.userPrincipalName
|
|
154
|
+
};
|
|
193
155
|
}
|
|
194
156
|
},
|
|
195
157
|
twitter: {
|
|
@@ -200,23 +162,31 @@ function requireProvidersRegistry() {
|
|
|
200
162
|
secret: '',
|
|
201
163
|
callbackUrl: `${baseURL}/twitter/callback`
|
|
202
164
|
},
|
|
203
|
-
async authCallback ({ accessToken,
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
165
|
+
async authCallback ({ accessToken, providers, grantResponse }) {
|
|
166
|
+
const accessSecret = grantResponse?.access_secret;
|
|
167
|
+
const screenName = grantResponse?.raw?.screen_name;
|
|
168
|
+
if (!accessSecret) {
|
|
169
|
+
throw new Error('Twitter authentication requires a completed OAuth session');
|
|
170
|
+
}
|
|
171
|
+
const { twitterGet } = requireOauth1();
|
|
172
|
+
const { body } = await twitterGet({
|
|
173
|
+
url: 'https://api.twitter.com/1.1/account/verify_credentials.json',
|
|
174
|
+
accessToken,
|
|
175
|
+
accessCredential: accessSecret,
|
|
176
|
+
consumerKey: providers.twitter.key,
|
|
177
|
+
clientCredential: providers.twitter.secret,
|
|
178
|
+
qs: {
|
|
179
|
+
include_email: 'true',
|
|
180
|
+
screen_name: screenName
|
|
211
181
|
}
|
|
212
182
|
});
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
183
|
+
if (!body.email) {
|
|
184
|
+
throw new Error('Email not verified by Twitter');
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
username: body.screen_name,
|
|
188
|
+
email: body.email
|
|
189
|
+
};
|
|
220
190
|
}
|
|
221
191
|
},
|
|
222
192
|
instagram: {
|
|
@@ -231,15 +201,15 @@ function requireProvidersRegistry() {
|
|
|
231
201
|
]
|
|
232
202
|
},
|
|
233
203
|
async authCallback ({ accessToken }) {
|
|
234
|
-
const
|
|
235
|
-
|
|
204
|
+
const { body } = await bearerGet('https://graph.instagram.com/me', accessToken, {
|
|
205
|
+
qs: {
|
|
206
|
+
fields: 'id,username'
|
|
207
|
+
}
|
|
236
208
|
});
|
|
237
|
-
return
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
email: `${body.username}@strapi.io`
|
|
242
|
-
}));
|
|
209
|
+
return {
|
|
210
|
+
username: body.username,
|
|
211
|
+
email: `${body.username}@strapi.io`
|
|
212
|
+
};
|
|
243
213
|
}
|
|
244
214
|
},
|
|
245
215
|
vk: {
|
|
@@ -253,17 +223,25 @@ function requireProvidersRegistry() {
|
|
|
253
223
|
'email'
|
|
254
224
|
]
|
|
255
225
|
},
|
|
256
|
-
async authCallback ({ accessToken,
|
|
257
|
-
const
|
|
258
|
-
|
|
226
|
+
async authCallback ({ accessToken, grantResponse }) {
|
|
227
|
+
const email = grantResponse?.raw?.email;
|
|
228
|
+
const userId = grantResponse?.raw?.user_id;
|
|
229
|
+
if (!email || !userId) {
|
|
230
|
+
throw new Error('VK authentication requires a completed OAuth session');
|
|
231
|
+
}
|
|
232
|
+
const { body } = await bearerGet('https://api.vk.com/method/users.get', accessToken, {
|
|
233
|
+
qs: {
|
|
234
|
+
user_ids: userId,
|
|
235
|
+
v: '5.122'
|
|
236
|
+
}
|
|
259
237
|
});
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
238
|
+
if (!body.response?.[0]) {
|
|
239
|
+
throw new Error('Invalid VK access token');
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
username: `${body.response[0].last_name} ${body.response[0].first_name}`,
|
|
243
|
+
email
|
|
244
|
+
};
|
|
267
245
|
}
|
|
268
246
|
},
|
|
269
247
|
twitch: {
|
|
@@ -278,25 +256,19 @@ function requireProvidersRegistry() {
|
|
|
278
256
|
]
|
|
279
257
|
},
|
|
280
258
|
async authCallback ({ accessToken, providers }) {
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
twitch: {
|
|
285
|
-
default: {
|
|
286
|
-
origin: 'https://api.twitch.tv',
|
|
287
|
-
path: 'helix/{path}',
|
|
288
|
-
headers: {
|
|
289
|
-
Authorization: 'Bearer {auth}',
|
|
290
|
-
'Client-Id': '{auth}'
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
259
|
+
const { body } = await bearerGet('https://api.twitch.tv/helix/users', accessToken, {
|
|
260
|
+
headers: {
|
|
261
|
+
'Client-Id': providers.twitch.key
|
|
294
262
|
}
|
|
295
263
|
});
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
264
|
+
const email = body.data?.[0]?.email;
|
|
265
|
+
if (!email) {
|
|
266
|
+
throw new Error('Email not verified by Twitch');
|
|
267
|
+
}
|
|
268
|
+
return {
|
|
269
|
+
username: body.data[0].login,
|
|
270
|
+
email
|
|
271
|
+
};
|
|
300
272
|
}
|
|
301
273
|
},
|
|
302
274
|
linkedin: {
|
|
@@ -312,14 +284,14 @@ function requireProvidersRegistry() {
|
|
|
312
284
|
]
|
|
313
285
|
},
|
|
314
286
|
async authCallback ({ accessToken }) {
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
287
|
+
const { body: profileBody } = await bearerGet('https://api.linkedin.com/v2/me', accessToken);
|
|
288
|
+
const { body: emailBody } = await bearerGet('https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))', accessToken);
|
|
289
|
+
const email = emailBody.elements[0]?.['handle~'];
|
|
290
|
+
if (!email?.emailAddress) {
|
|
291
|
+
throw new Error('Email not verified by LinkedIn');
|
|
292
|
+
}
|
|
321
293
|
return {
|
|
322
|
-
username: localizedFirstName,
|
|
294
|
+
username: profileBody.localizedFirstName,
|
|
323
295
|
email: email.emailAddress
|
|
324
296
|
};
|
|
325
297
|
}
|
|
@@ -338,14 +310,19 @@ function requireProvidersRegistry() {
|
|
|
338
310
|
'profile'
|
|
339
311
|
]
|
|
340
312
|
},
|
|
341
|
-
async authCallback ({
|
|
313
|
+
async authCallback ({ providers, grantResponse }) {
|
|
342
314
|
const jwksUrl = new URL(providers.cognito.jwksurl);
|
|
343
|
-
const idToken =
|
|
344
|
-
|
|
315
|
+
const idToken = grantResponse?.id_token;
|
|
316
|
+
if (!idToken) {
|
|
317
|
+
throw new Error('Cognito authentication requires a completed OAuth session');
|
|
318
|
+
}
|
|
319
|
+
const tokenPayload = await verifyJwtWithJwks({
|
|
345
320
|
idToken,
|
|
346
|
-
jwksUrl
|
|
347
|
-
purest
|
|
321
|
+
jwksUrl
|
|
348
322
|
});
|
|
323
|
+
if (tokenPayload.email_verified !== true) {
|
|
324
|
+
throw new Error('Email not verified by Cognito');
|
|
325
|
+
}
|
|
349
326
|
return {
|
|
350
327
|
username: tokenPayload['cognito:username'],
|
|
351
328
|
email: tokenPayload.email
|
|
@@ -364,26 +341,15 @@ function requireProvidersRegistry() {
|
|
|
364
341
|
]
|
|
365
342
|
},
|
|
366
343
|
async authCallback ({ accessToken }) {
|
|
367
|
-
const
|
|
368
|
-
|
|
369
|
-
|
|
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
|
-
}
|
|
344
|
+
const { body } = await bearerGet('https://oauth.reddit.com/api/v1/me', accessToken, {
|
|
345
|
+
headers: {
|
|
346
|
+
'user-agent': 'strapi'
|
|
381
347
|
}
|
|
382
348
|
});
|
|
383
|
-
return
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
349
|
+
return {
|
|
350
|
+
username: body.name,
|
|
351
|
+
email: `${body.name}@strapi.io`
|
|
352
|
+
};
|
|
387
353
|
}
|
|
388
354
|
},
|
|
389
355
|
auth0: {
|
|
@@ -401,17 +367,16 @@ function requireProvidersRegistry() {
|
|
|
401
367
|
]
|
|
402
368
|
},
|
|
403
369
|
async authCallback ({ accessToken, providers }) {
|
|
404
|
-
const
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
});
|
|
370
|
+
const { body } = await bearerGet(`https://${providers.auth0.subdomain}.auth0.com/userinfo`, accessToken);
|
|
371
|
+
if (body.email && body.email_verified !== true) {
|
|
372
|
+
throw new Error('Email not verified by Auth0');
|
|
373
|
+
}
|
|
374
|
+
const username = body.username || body.nickname || body.name || body.email.split('@')[0];
|
|
375
|
+
const email = body.email || `${username.replace(/\s+/g, '.')}@strapi.io`;
|
|
376
|
+
return {
|
|
377
|
+
username,
|
|
378
|
+
email
|
|
379
|
+
};
|
|
415
380
|
}
|
|
416
381
|
},
|
|
417
382
|
cas: {
|
|
@@ -427,21 +392,20 @@ function requireProvidersRegistry() {
|
|
|
427
392
|
subdomain: 'my.subdomain.com/cas'
|
|
428
393
|
},
|
|
429
394
|
async authCallback ({ accessToken, providers }) {
|
|
430
|
-
const
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
});
|
|
395
|
+
const { body } = await bearerGet(`https://${providers.cas.subdomain}/oidc/profile`, accessToken);
|
|
396
|
+
const username = body.attributes ? body.attributes.strapiusername || body.id || body.sub : body.strapiusername || body.id || body.sub;
|
|
397
|
+
const email = body.attributes ? body.attributes.strapiemail || body.attributes.email : body.strapiemail || body.email;
|
|
398
|
+
const emailVerified = body.email_verified ?? body.attributes?.email_verified;
|
|
399
|
+
if (!username || !email) {
|
|
400
|
+
strapi.log.warn(`CAS Response Body did not contain required attributes: ${JSON.stringify(body)}`);
|
|
401
|
+
}
|
|
402
|
+
if (email && emailVerified !== true) {
|
|
403
|
+
throw new Error('Email not verified by CAS');
|
|
404
|
+
}
|
|
405
|
+
return {
|
|
406
|
+
username,
|
|
407
|
+
email
|
|
408
|
+
};
|
|
445
409
|
}
|
|
446
410
|
},
|
|
447
411
|
patreon: {
|
|
@@ -457,29 +421,15 @@ function requireProvidersRegistry() {
|
|
|
457
421
|
]
|
|
458
422
|
},
|
|
459
423
|
async authCallback ({ accessToken }) {
|
|
460
|
-
const
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
});
|
|
474
|
-
return patreon.get('v2/identity').auth(accessToken).qs(new URLSearchParams({
|
|
475
|
-
'fields[user]': 'full_name,email'
|
|
476
|
-
}).toString()).request().then(({ body })=>{
|
|
477
|
-
const patreonData = body.data.attributes;
|
|
478
|
-
return {
|
|
479
|
-
username: patreonData.full_name,
|
|
480
|
-
email: patreonData.email
|
|
481
|
-
};
|
|
482
|
-
});
|
|
424
|
+
const { body } = await bearerGet('https://www.patreon.com/api/oauth2/v2/identity?fields[user]=full_name,email,is_email_verified', accessToken);
|
|
425
|
+
const patreonData = body.data.attributes;
|
|
426
|
+
if (patreonData.is_email_verified !== true) {
|
|
427
|
+
throw new Error('Email not verified by Patreon');
|
|
428
|
+
}
|
|
429
|
+
return {
|
|
430
|
+
username: patreonData.full_name,
|
|
431
|
+
email: patreonData.email
|
|
432
|
+
};
|
|
483
433
|
}
|
|
484
434
|
},
|
|
485
435
|
keycloak: {
|
|
@@ -497,29 +447,24 @@ function requireProvidersRegistry() {
|
|
|
497
447
|
]
|
|
498
448
|
},
|
|
499
449
|
async authCallback ({ accessToken, providers }) {
|
|
500
|
-
const
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
});
|
|
450
|
+
const { body } = await bearerGet(`https://${providers.keycloak.subdomain}/protocol/openid-connect/userinfo`, accessToken);
|
|
451
|
+
if (body.email_verified !== true) {
|
|
452
|
+
throw new Error('Email not verified by Keycloak');
|
|
453
|
+
}
|
|
454
|
+
return {
|
|
455
|
+
username: body.preferred_username,
|
|
456
|
+
email: body.email
|
|
457
|
+
};
|
|
509
458
|
}
|
|
510
459
|
}
|
|
511
460
|
});
|
|
512
461
|
providersRegistry = ()=>{
|
|
513
|
-
const purest = require$$4;
|
|
514
462
|
const apiPrefix = strapi.config.get('api.rest.prefix');
|
|
515
463
|
const baseURL = urljoin(strapi.config.server.url, apiPrefix, 'auth');
|
|
516
464
|
const authProviders = initProviders({
|
|
517
|
-
baseURL
|
|
518
|
-
purest
|
|
465
|
+
baseURL
|
|
519
466
|
});
|
|
520
|
-
|
|
521
|
-
* @public
|
|
522
|
-
*/ return {
|
|
467
|
+
return {
|
|
523
468
|
getAll () {
|
|
524
469
|
return authProviders;
|
|
525
470
|
},
|
|
@@ -532,16 +477,14 @@ function requireProvidersRegistry() {
|
|
|
532
477
|
remove (name) {
|
|
533
478
|
delete authProviders[name];
|
|
534
479
|
},
|
|
535
|
-
|
|
536
|
-
* @internal
|
|
537
|
-
*/ async run ({ provider, accessToken, query, providers }) {
|
|
480
|
+
async run ({ provider, accessToken, query, providers, grantResponse }) {
|
|
538
481
|
const authProvider = authProviders[provider];
|
|
539
482
|
assert(authProvider, 'Unknown auth provider');
|
|
540
483
|
return authProvider.authCallback({
|
|
541
484
|
accessToken,
|
|
542
485
|
query,
|
|
543
486
|
providers,
|
|
544
|
-
|
|
487
|
+
grantResponse
|
|
545
488
|
});
|
|
546
489
|
}
|
|
547
490
|
};
|