@strapi/plugin-users-permissions 5.0.0-beta.8 → 5.0.0-beta.9
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/dist/_chunks/{index-B_rNTZBF.mjs → index-8gj-Xbnv.mjs} +2 -2
- package/dist/_chunks/{index-B_rNTZBF.mjs.map → index-8gj-Xbnv.mjs.map} +1 -1
- package/dist/_chunks/{index-B6AAcVOR.mjs → index-BBs5I2vg.mjs} +8 -8
- package/dist/_chunks/{index-B6AAcVOR.mjs.map → index-BBs5I2vg.mjs.map} +1 -1
- package/dist/_chunks/{index-fnfzDsYv.mjs → index-CDbrfh8w.mjs} +3 -3
- package/dist/_chunks/{index-fnfzDsYv.mjs.map → index-CDbrfh8w.mjs.map} +1 -1
- package/dist/_chunks/{index-DGyiWVHr.js → index-CTQmcKdx.js} +7 -7
- package/dist/_chunks/{index-DGyiWVHr.js.map → index-CTQmcKdx.js.map} +1 -1
- package/dist/_chunks/{index-00_Lq0-y.mjs → index-Cm0m3fu1.mjs} +3 -3
- package/dist/_chunks/{index-00_Lq0-y.mjs.map → index-Cm0m3fu1.mjs.map} +1 -1
- package/dist/_chunks/{index-CIJz4WB2.js → index-DU64Xec_.js} +2 -2
- package/dist/_chunks/{index-CIJz4WB2.js.map → index-DU64Xec_.js.map} +1 -1
- package/dist/_chunks/{index-BGu68xEV.js → index-DbtKSwQT.js} +8 -8
- package/dist/_chunks/{index-BGu68xEV.js.map → index-DbtKSwQT.js.map} +1 -1
- package/dist/_chunks/{index-DTK4DMrt.js → index-Dv_hLBLL.js} +4 -4
- package/dist/_chunks/{index-DTK4DMrt.js.map → index-Dv_hLBLL.js.map} +1 -1
- package/dist/_chunks/{index-69WUS0qJ-621Sl9hj.js → index-EQL2s09p-621Sl9hj.js} +1 -1
- package/dist/_chunks/{index-69WUS0qJ-621Sl9hj.js.map → index-EQL2s09p-621Sl9hj.js.map} +1 -1
- package/dist/_chunks/{index-69WUS0qJ-DzUzGVgd.mjs → index-EQL2s09p-DzUzGVgd.mjs} +1 -1
- package/dist/_chunks/{index-69WUS0qJ-DzUzGVgd.mjs.map → index-EQL2s09p-DzUzGVgd.mjs.map} +1 -1
- package/dist/_chunks/{index-BSqwdKVh.js → index-eXarQ1KK.js} +2 -2
- package/dist/_chunks/{index-BSqwdKVh.js.map → index-eXarQ1KK.js.map} +1 -1
- package/dist/_chunks/{index-DaCuO0x_.mjs → index-sXlt_q08.mjs} +2 -2
- package/dist/_chunks/{index-DaCuO0x_.mjs.map → index-sXlt_q08.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +4 -4
- package/server/config.js +29 -0
- package/server/controllers/auth.js +22 -4
|
@@ -196,10 +196,28 @@ module.exports = {
|
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
// Ability to pass OAuth callback dynamically
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
199
|
+
const queryCustomCallback = _.get(ctx, 'query.callback');
|
|
200
|
+
const dynamicSessionCallback = _.get(ctx, 'session.grant.dynamic.callback');
|
|
201
|
+
|
|
202
|
+
const customCallback = queryCustomCallback ?? dynamicSessionCallback;
|
|
203
|
+
|
|
204
|
+
// The custom callback is validated to make sure it's not redirecting to an unwanted actor.
|
|
205
|
+
if (customCallback !== undefined) {
|
|
206
|
+
try {
|
|
207
|
+
// We're extracting the callback validator from the plugin config since it can be user-customized
|
|
208
|
+
const { validate: validateCallback } = strapi
|
|
209
|
+
.plugin('users-permissions')
|
|
210
|
+
.config('callback');
|
|
211
|
+
|
|
212
|
+
await validateCallback(customCallback, grantConfig[provider]);
|
|
213
|
+
|
|
214
|
+
grantConfig[provider].callback = customCallback;
|
|
215
|
+
} catch (e) {
|
|
216
|
+
throw new ValidationError('Invalid callback URL provided', { callback: customCallback });
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// Build a valid redirect URI for the current provider
|
|
203
221
|
grantConfig[provider].redirect_uri = getService('providers').buildRedirectUri(provider);
|
|
204
222
|
|
|
205
223
|
return grant(grantConfig)(ctx, next);
|