@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,18 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var require$$0 = require('assert');
|
|
4
|
-
var require$$1 = require('
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
4
|
+
var require$$1 = require('url-join');
|
|
5
|
+
var verifyJwtWithJwks = require('../utils/verify-jwt-with-jwks.js');
|
|
6
|
+
var providerHttp = require('../utils/provider-http.js');
|
|
7
|
+
var oauth1 = require('../utils/oauth-connect/oauth1.js');
|
|
8
8
|
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
|
|
11
11
|
var require$$0__default = /*#__PURE__*/_interopDefault(require$$0);
|
|
12
12
|
var require$$1__default = /*#__PURE__*/_interopDefault(require$$1);
|
|
13
|
-
var require$$2__default = /*#__PURE__*/_interopDefault(require$$2);
|
|
14
|
-
var require$$3__default = /*#__PURE__*/_interopDefault(require$$3);
|
|
15
|
-
var require$$4__default = /*#__PURE__*/_interopDefault(require$$4);
|
|
16
13
|
|
|
17
14
|
var providersRegistry;
|
|
18
15
|
var hasRequiredProvidersRegistry;
|
|
@@ -20,53 +17,10 @@ function requireProvidersRegistry() {
|
|
|
20
17
|
if (hasRequiredProvidersRegistry) return providersRegistry;
|
|
21
18
|
hasRequiredProvidersRegistry = 1;
|
|
22
19
|
const { strict: assert } = require$$0__default.default;
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const { header: { kid }, payload } = jwt.decode(idToken, {
|
|
28
|
-
complete: true
|
|
29
|
-
});
|
|
30
|
-
if (!payload || !kid) {
|
|
31
|
-
throw new Error('The provided token is not valid');
|
|
32
|
-
}
|
|
33
|
-
const config = {
|
|
34
|
-
cognito: {
|
|
35
|
-
discovery: {
|
|
36
|
-
origin: jwksUrl.origin,
|
|
37
|
-
path: jwksUrl.pathname
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
try {
|
|
42
|
-
const cognito = purest({
|
|
43
|
-
provider: 'cognito',
|
|
44
|
-
config
|
|
45
|
-
});
|
|
46
|
-
// get the JSON Web Key (JWK) for the user pool
|
|
47
|
-
const { body: jwk } = await cognito('discovery').request();
|
|
48
|
-
// Get the key with the same Key ID as the provided token
|
|
49
|
-
const key = jwk.keys.find(({ kid: jwkKid })=>jwkKid === kid);
|
|
50
|
-
const pem = jwkToPem(key);
|
|
51
|
-
// https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html
|
|
52
|
-
const decodedToken = await new Promise((resolve, reject)=>{
|
|
53
|
-
jwt.verify(idToken, pem, {
|
|
54
|
-
algorithms: [
|
|
55
|
-
'RS256'
|
|
56
|
-
]
|
|
57
|
-
}, (err, decodedToken)=>{
|
|
58
|
-
if (err) {
|
|
59
|
-
reject();
|
|
60
|
-
}
|
|
61
|
-
resolve(decodedToken);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
return decodedToken;
|
|
65
|
-
} catch (err) {
|
|
66
|
-
throw new Error('There was an error verifying the token');
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
const initProviders = ({ baseURL, purest })=>({
|
|
20
|
+
const urljoin = require$$1__default.default;
|
|
21
|
+
const { verifyJwtWithJwks: verifyJwtWithJwks$1 } = verifyJwtWithJwks.__require();
|
|
22
|
+
const { bearerGet, fetchJson } = providerHttp.__require();
|
|
23
|
+
const initProviders = ({ baseURL })=>({
|
|
70
24
|
email: {
|
|
71
25
|
enabled: true,
|
|
72
26
|
icon: 'envelope',
|
|
@@ -85,17 +39,15 @@ function requireProvidersRegistry() {
|
|
|
85
39
|
]
|
|
86
40
|
},
|
|
87
41
|
async authCallback ({ accessToken }) {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
};
|
|
98
|
-
});
|
|
42
|
+
const { body } = await bearerGet('https://discord.com/api/users/@me', accessToken);
|
|
43
|
+
if (body.verified !== true) {
|
|
44
|
+
throw new Error('Email not verified by Discord');
|
|
45
|
+
}
|
|
46
|
+
const username = body.discriminator && body.discriminator !== '0' ? `${body.username}#${body.discriminator}` : body.username;
|
|
47
|
+
return {
|
|
48
|
+
username,
|
|
49
|
+
email: body.email
|
|
50
|
+
};
|
|
99
51
|
}
|
|
100
52
|
},
|
|
101
53
|
facebook: {
|
|
@@ -110,15 +62,18 @@ function requireProvidersRegistry() {
|
|
|
110
62
|
]
|
|
111
63
|
},
|
|
112
64
|
async authCallback ({ accessToken }) {
|
|
113
|
-
const
|
|
114
|
-
|
|
65
|
+
const { body } = await bearerGet('https://graph.facebook.com/me', accessToken, {
|
|
66
|
+
qs: {
|
|
67
|
+
fields: 'name,email'
|
|
68
|
+
}
|
|
115
69
|
});
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
70
|
+
if (!body.email) {
|
|
71
|
+
throw new Error('Email not verified by Facebook');
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
username: body.name,
|
|
75
|
+
email: body.email
|
|
76
|
+
};
|
|
122
77
|
}
|
|
123
78
|
},
|
|
124
79
|
google: {
|
|
@@ -133,15 +88,15 @@ function requireProvidersRegistry() {
|
|
|
133
88
|
]
|
|
134
89
|
},
|
|
135
90
|
async authCallback ({ accessToken }) {
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
91
|
+
const { body } = await fetchJson(`https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(accessToken)}`);
|
|
92
|
+
const verified = body.verified_email ?? body.email_verified;
|
|
93
|
+
if (verified !== true && verified !== 'true') {
|
|
94
|
+
throw new Error('Email not verified by Google');
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
username: body.email.split('@')[0],
|
|
98
|
+
email: body.email
|
|
99
|
+
};
|
|
145
100
|
}
|
|
146
101
|
},
|
|
147
102
|
github: {
|
|
@@ -157,27 +112,33 @@ function requireProvidersRegistry() {
|
|
|
157
112
|
]
|
|
158
113
|
},
|
|
159
114
|
async authCallback ({ accessToken }) {
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
115
|
+
const { body: userBody } = await bearerGet('https://api.github.com/user', accessToken, {
|
|
116
|
+
headers: {
|
|
117
|
+
'user-agent': 'strapi'
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const { body: emailBody } = await bearerGet('https://api.github.com/user/emails', accessToken, {
|
|
121
|
+
headers: {
|
|
122
|
+
'user-agent': 'strapi'
|
|
166
123
|
}
|
|
167
124
|
});
|
|
168
|
-
const { body: userBody } = await github.get('user').auth(accessToken).request();
|
|
169
|
-
// This is the public email on the github profile
|
|
170
125
|
if (userBody.email) {
|
|
126
|
+
const verifiedPublicEmail = Array.isArray(emailBody) ? emailBody.find((entry)=>entry.email === userBody.email && entry.verified === true) : null;
|
|
127
|
+
if (!verifiedPublicEmail) {
|
|
128
|
+
throw new Error('Email not verified by GitHub');
|
|
129
|
+
}
|
|
171
130
|
return {
|
|
172
131
|
username: userBody.login,
|
|
173
132
|
email: userBody.email
|
|
174
133
|
};
|
|
175
134
|
}
|
|
176
|
-
|
|
177
|
-
|
|
135
|
+
const primaryEmail = Array.isArray(emailBody) ? emailBody.find((email)=>email.primary === true) : null;
|
|
136
|
+
if (!primaryEmail || primaryEmail.verified !== true) {
|
|
137
|
+
throw new Error('Email not verified by GitHub');
|
|
138
|
+
}
|
|
178
139
|
return {
|
|
179
140
|
username: userBody.login,
|
|
180
|
-
email:
|
|
141
|
+
email: primaryEmail.email
|
|
181
142
|
};
|
|
182
143
|
}
|
|
183
144
|
},
|
|
@@ -193,13 +154,11 @@ function requireProvidersRegistry() {
|
|
|
193
154
|
]
|
|
194
155
|
},
|
|
195
156
|
async authCallback ({ accessToken }) {
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
email: body.userPrincipalName
|
|
202
|
-
}));
|
|
157
|
+
const { body } = await bearerGet('https://graph.microsoft.com/v1.0/me', accessToken);
|
|
158
|
+
return {
|
|
159
|
+
username: body.userPrincipalName,
|
|
160
|
+
email: body.userPrincipalName
|
|
161
|
+
};
|
|
203
162
|
}
|
|
204
163
|
},
|
|
205
164
|
twitter: {
|
|
@@ -210,23 +169,31 @@ function requireProvidersRegistry() {
|
|
|
210
169
|
secret: '',
|
|
211
170
|
callbackUrl: `${baseURL}/twitter/callback`
|
|
212
171
|
},
|
|
213
|
-
async authCallback ({ accessToken,
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
172
|
+
async authCallback ({ accessToken, providers, grantResponse }) {
|
|
173
|
+
const accessSecret = grantResponse?.access_secret;
|
|
174
|
+
const screenName = grantResponse?.raw?.screen_name;
|
|
175
|
+
if (!accessSecret) {
|
|
176
|
+
throw new Error('Twitter authentication requires a completed OAuth session');
|
|
177
|
+
}
|
|
178
|
+
const { twitterGet } = oauth1.__require();
|
|
179
|
+
const { body } = await twitterGet({
|
|
180
|
+
url: 'https://api.twitter.com/1.1/account/verify_credentials.json',
|
|
181
|
+
accessToken,
|
|
182
|
+
accessCredential: accessSecret,
|
|
183
|
+
consumerKey: providers.twitter.key,
|
|
184
|
+
clientCredential: providers.twitter.secret,
|
|
185
|
+
qs: {
|
|
186
|
+
include_email: 'true',
|
|
187
|
+
screen_name: screenName
|
|
221
188
|
}
|
|
222
189
|
});
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
190
|
+
if (!body.email) {
|
|
191
|
+
throw new Error('Email not verified by Twitter');
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
username: body.screen_name,
|
|
195
|
+
email: body.email
|
|
196
|
+
};
|
|
230
197
|
}
|
|
231
198
|
},
|
|
232
199
|
instagram: {
|
|
@@ -241,15 +208,15 @@ function requireProvidersRegistry() {
|
|
|
241
208
|
]
|
|
242
209
|
},
|
|
243
210
|
async authCallback ({ accessToken }) {
|
|
244
|
-
const
|
|
245
|
-
|
|
211
|
+
const { body } = await bearerGet('https://graph.instagram.com/me', accessToken, {
|
|
212
|
+
qs: {
|
|
213
|
+
fields: 'id,username'
|
|
214
|
+
}
|
|
246
215
|
});
|
|
247
|
-
return
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
email: `${body.username}@strapi.io`
|
|
252
|
-
}));
|
|
216
|
+
return {
|
|
217
|
+
username: body.username,
|
|
218
|
+
email: `${body.username}@strapi.io`
|
|
219
|
+
};
|
|
253
220
|
}
|
|
254
221
|
},
|
|
255
222
|
vk: {
|
|
@@ -263,17 +230,25 @@ function requireProvidersRegistry() {
|
|
|
263
230
|
'email'
|
|
264
231
|
]
|
|
265
232
|
},
|
|
266
|
-
async authCallback ({ accessToken,
|
|
267
|
-
const
|
|
268
|
-
|
|
233
|
+
async authCallback ({ accessToken, grantResponse }) {
|
|
234
|
+
const email = grantResponse?.raw?.email;
|
|
235
|
+
const userId = grantResponse?.raw?.user_id;
|
|
236
|
+
if (!email || !userId) {
|
|
237
|
+
throw new Error('VK authentication requires a completed OAuth session');
|
|
238
|
+
}
|
|
239
|
+
const { body } = await bearerGet('https://api.vk.com/method/users.get', accessToken, {
|
|
240
|
+
qs: {
|
|
241
|
+
user_ids: userId,
|
|
242
|
+
v: '5.122'
|
|
243
|
+
}
|
|
269
244
|
});
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
245
|
+
if (!body.response?.[0]) {
|
|
246
|
+
throw new Error('Invalid VK access token');
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
username: `${body.response[0].last_name} ${body.response[0].first_name}`,
|
|
250
|
+
email
|
|
251
|
+
};
|
|
277
252
|
}
|
|
278
253
|
},
|
|
279
254
|
twitch: {
|
|
@@ -288,25 +263,19 @@ function requireProvidersRegistry() {
|
|
|
288
263
|
]
|
|
289
264
|
},
|
|
290
265
|
async authCallback ({ accessToken, providers }) {
|
|
291
|
-
const
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
twitch: {
|
|
295
|
-
default: {
|
|
296
|
-
origin: 'https://api.twitch.tv',
|
|
297
|
-
path: 'helix/{path}',
|
|
298
|
-
headers: {
|
|
299
|
-
Authorization: 'Bearer {auth}',
|
|
300
|
-
'Client-Id': '{auth}'
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
266
|
+
const { body } = await bearerGet('https://api.twitch.tv/helix/users', accessToken, {
|
|
267
|
+
headers: {
|
|
268
|
+
'Client-Id': providers.twitch.key
|
|
304
269
|
}
|
|
305
270
|
});
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
271
|
+
const email = body.data?.[0]?.email;
|
|
272
|
+
if (!email) {
|
|
273
|
+
throw new Error('Email not verified by Twitch');
|
|
274
|
+
}
|
|
275
|
+
return {
|
|
276
|
+
username: body.data[0].login,
|
|
277
|
+
email
|
|
278
|
+
};
|
|
310
279
|
}
|
|
311
280
|
},
|
|
312
281
|
linkedin: {
|
|
@@ -322,14 +291,14 @@ function requireProvidersRegistry() {
|
|
|
322
291
|
]
|
|
323
292
|
},
|
|
324
293
|
async authCallback ({ accessToken }) {
|
|
325
|
-
const
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
294
|
+
const { body: profileBody } = await bearerGet('https://api.linkedin.com/v2/me', accessToken);
|
|
295
|
+
const { body: emailBody } = await bearerGet('https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))', accessToken);
|
|
296
|
+
const email = emailBody.elements[0]?.['handle~'];
|
|
297
|
+
if (!email?.emailAddress) {
|
|
298
|
+
throw new Error('Email not verified by LinkedIn');
|
|
299
|
+
}
|
|
331
300
|
return {
|
|
332
|
-
username: localizedFirstName,
|
|
301
|
+
username: profileBody.localizedFirstName,
|
|
333
302
|
email: email.emailAddress
|
|
334
303
|
};
|
|
335
304
|
}
|
|
@@ -348,14 +317,19 @@ function requireProvidersRegistry() {
|
|
|
348
317
|
'profile'
|
|
349
318
|
]
|
|
350
319
|
},
|
|
351
|
-
async authCallback ({
|
|
320
|
+
async authCallback ({ providers, grantResponse }) {
|
|
352
321
|
const jwksUrl = new URL(providers.cognito.jwksurl);
|
|
353
|
-
const idToken =
|
|
354
|
-
|
|
322
|
+
const idToken = grantResponse?.id_token;
|
|
323
|
+
if (!idToken) {
|
|
324
|
+
throw new Error('Cognito authentication requires a completed OAuth session');
|
|
325
|
+
}
|
|
326
|
+
const tokenPayload = await verifyJwtWithJwks$1({
|
|
355
327
|
idToken,
|
|
356
|
-
jwksUrl
|
|
357
|
-
purest
|
|
328
|
+
jwksUrl
|
|
358
329
|
});
|
|
330
|
+
if (tokenPayload.email_verified !== true) {
|
|
331
|
+
throw new Error('Email not verified by Cognito');
|
|
332
|
+
}
|
|
359
333
|
return {
|
|
360
334
|
username: tokenPayload['cognito:username'],
|
|
361
335
|
email: tokenPayload.email
|
|
@@ -374,26 +348,15 @@ function requireProvidersRegistry() {
|
|
|
374
348
|
]
|
|
375
349
|
},
|
|
376
350
|
async authCallback ({ accessToken }) {
|
|
377
|
-
const
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
reddit: {
|
|
381
|
-
default: {
|
|
382
|
-
origin: 'https://oauth.reddit.com',
|
|
383
|
-
path: 'api/{version}/{path}',
|
|
384
|
-
version: 'v1',
|
|
385
|
-
headers: {
|
|
386
|
-
Authorization: 'Bearer {auth}',
|
|
387
|
-
'user-agent': 'strapi'
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
}
|
|
351
|
+
const { body } = await bearerGet('https://oauth.reddit.com/api/v1/me', accessToken, {
|
|
352
|
+
headers: {
|
|
353
|
+
'user-agent': 'strapi'
|
|
391
354
|
}
|
|
392
355
|
});
|
|
393
|
-
return
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
356
|
+
return {
|
|
357
|
+
username: body.name,
|
|
358
|
+
email: `${body.name}@strapi.io`
|
|
359
|
+
};
|
|
397
360
|
}
|
|
398
361
|
},
|
|
399
362
|
auth0: {
|
|
@@ -411,17 +374,16 @@ function requireProvidersRegistry() {
|
|
|
411
374
|
]
|
|
412
375
|
},
|
|
413
376
|
async authCallback ({ accessToken, providers }) {
|
|
414
|
-
const
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
});
|
|
377
|
+
const { body } = await bearerGet(`https://${providers.auth0.subdomain}.auth0.com/userinfo`, accessToken);
|
|
378
|
+
if (body.email && body.email_verified !== true) {
|
|
379
|
+
throw new Error('Email not verified by Auth0');
|
|
380
|
+
}
|
|
381
|
+
const username = body.username || body.nickname || body.name || body.email.split('@')[0];
|
|
382
|
+
const email = body.email || `${username.replace(/\s+/g, '.')}@strapi.io`;
|
|
383
|
+
return {
|
|
384
|
+
username,
|
|
385
|
+
email
|
|
386
|
+
};
|
|
425
387
|
}
|
|
426
388
|
},
|
|
427
389
|
cas: {
|
|
@@ -437,21 +399,20 @@ function requireProvidersRegistry() {
|
|
|
437
399
|
subdomain: 'my.subdomain.com/cas'
|
|
438
400
|
},
|
|
439
401
|
async authCallback ({ accessToken, providers }) {
|
|
440
|
-
const
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
});
|
|
402
|
+
const { body } = await bearerGet(`https://${providers.cas.subdomain}/oidc/profile`, accessToken);
|
|
403
|
+
const username = body.attributes ? body.attributes.strapiusername || body.id || body.sub : body.strapiusername || body.id || body.sub;
|
|
404
|
+
const email = body.attributes ? body.attributes.strapiemail || body.attributes.email : body.strapiemail || body.email;
|
|
405
|
+
const emailVerified = body.email_verified ?? body.attributes?.email_verified;
|
|
406
|
+
if (!username || !email) {
|
|
407
|
+
strapi.log.warn(`CAS Response Body did not contain required attributes: ${JSON.stringify(body)}`);
|
|
408
|
+
}
|
|
409
|
+
if (email && emailVerified !== true) {
|
|
410
|
+
throw new Error('Email not verified by CAS');
|
|
411
|
+
}
|
|
412
|
+
return {
|
|
413
|
+
username,
|
|
414
|
+
email
|
|
415
|
+
};
|
|
455
416
|
}
|
|
456
417
|
},
|
|
457
418
|
patreon: {
|
|
@@ -467,29 +428,15 @@ function requireProvidersRegistry() {
|
|
|
467
428
|
]
|
|
468
429
|
},
|
|
469
430
|
async authCallback ({ accessToken }) {
|
|
470
|
-
const
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
});
|
|
484
|
-
return patreon.get('v2/identity').auth(accessToken).qs(new URLSearchParams({
|
|
485
|
-
'fields[user]': 'full_name,email'
|
|
486
|
-
}).toString()).request().then(({ body })=>{
|
|
487
|
-
const patreonData = body.data.attributes;
|
|
488
|
-
return {
|
|
489
|
-
username: patreonData.full_name,
|
|
490
|
-
email: patreonData.email
|
|
491
|
-
};
|
|
492
|
-
});
|
|
431
|
+
const { body } = await bearerGet('https://www.patreon.com/api/oauth2/v2/identity?fields[user]=full_name,email,is_email_verified', accessToken);
|
|
432
|
+
const patreonData = body.data.attributes;
|
|
433
|
+
if (patreonData.is_email_verified !== true) {
|
|
434
|
+
throw new Error('Email not verified by Patreon');
|
|
435
|
+
}
|
|
436
|
+
return {
|
|
437
|
+
username: patreonData.full_name,
|
|
438
|
+
email: patreonData.email
|
|
439
|
+
};
|
|
493
440
|
}
|
|
494
441
|
},
|
|
495
442
|
keycloak: {
|
|
@@ -507,29 +454,24 @@ function requireProvidersRegistry() {
|
|
|
507
454
|
]
|
|
508
455
|
},
|
|
509
456
|
async authCallback ({ accessToken, providers }) {
|
|
510
|
-
const
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
});
|
|
457
|
+
const { body } = await bearerGet(`https://${providers.keycloak.subdomain}/protocol/openid-connect/userinfo`, accessToken);
|
|
458
|
+
if (body.email_verified !== true) {
|
|
459
|
+
throw new Error('Email not verified by Keycloak');
|
|
460
|
+
}
|
|
461
|
+
return {
|
|
462
|
+
username: body.preferred_username,
|
|
463
|
+
email: body.email
|
|
464
|
+
};
|
|
519
465
|
}
|
|
520
466
|
}
|
|
521
467
|
});
|
|
522
468
|
providersRegistry = ()=>{
|
|
523
|
-
const purest = require$$4__default.default;
|
|
524
469
|
const apiPrefix = strapi.config.get('api.rest.prefix');
|
|
525
470
|
const baseURL = urljoin(strapi.config.server.url, apiPrefix, 'auth');
|
|
526
471
|
const authProviders = initProviders({
|
|
527
|
-
baseURL
|
|
528
|
-
purest
|
|
472
|
+
baseURL
|
|
529
473
|
});
|
|
530
|
-
|
|
531
|
-
* @public
|
|
532
|
-
*/ return {
|
|
474
|
+
return {
|
|
533
475
|
getAll () {
|
|
534
476
|
return authProviders;
|
|
535
477
|
},
|
|
@@ -542,16 +484,14 @@ function requireProvidersRegistry() {
|
|
|
542
484
|
remove (name) {
|
|
543
485
|
delete authProviders[name];
|
|
544
486
|
},
|
|
545
|
-
|
|
546
|
-
* @internal
|
|
547
|
-
*/ async run ({ provider, accessToken, query, providers }) {
|
|
487
|
+
async run ({ provider, accessToken, query, providers, grantResponse }) {
|
|
548
488
|
const authProvider = authProviders[provider];
|
|
549
489
|
assert(authProvider, 'Unknown auth provider');
|
|
550
490
|
return authProvider.authCallback({
|
|
551
491
|
accessToken,
|
|
552
492
|
query,
|
|
553
493
|
providers,
|
|
554
|
-
|
|
494
|
+
grantResponse
|
|
555
495
|
});
|
|
556
496
|
}
|
|
557
497
|
};
|