Auth0 访问控制
Auth0 access control
我正在使用 Auth0 来管理跨多个不同应用程序的大量用户,其中一些是基于 Web 的,另一些是桌面和移动应用程序。在每个用户的元数据下,我有一组每个用户都可以访问的应用程序,我想知道如何在进行身份验证时检查它,以便如果不在该列表中,访问将被拒绝。
我可以在应用程序上很容易地做到这一点,但是如果在 Auth0 上做到这一点就更好了。
使用如下定义的规则为我提供了我正在寻找的功能:
function (user, context, callback) {
// ACL object
var acl = {
"someAppName": [ 'user1@mail.com', 'user2@mail.com' ],
"otherApp": ['user2@mail.com']
}
// if App is not in the ACL, skip
if(!acl.hasOwnProperty(context.clientName)){
return callback(null, user, context);
}
// check if user has access to app
var userHasAccess = acl[context.clientName].some(
function (email) {
return email === user.email;
}
);
if (!userHasAccess) {
return callback(new UnauthorizedError('Access denied.'));
}
callback(null, user, context);
}
我正在使用 Auth0 来管理跨多个不同应用程序的大量用户,其中一些是基于 Web 的,另一些是桌面和移动应用程序。在每个用户的元数据下,我有一组每个用户都可以访问的应用程序,我想知道如何在进行身份验证时检查它,以便如果不在该列表中,访问将被拒绝。
我可以在应用程序上很容易地做到这一点,但是如果在 Auth0 上做到这一点就更好了。
使用如下定义的规则为我提供了我正在寻找的功能:
function (user, context, callback) {
// ACL object
var acl = {
"someAppName": [ 'user1@mail.com', 'user2@mail.com' ],
"otherApp": ['user2@mail.com']
}
// if App is not in the ACL, skip
if(!acl.hasOwnProperty(context.clientName)){
return callback(null, user, context);
}
// check if user has access to app
var userHasAccess = acl[context.clientName].some(
function (email) {
return email === user.email;
}
);
if (!userHasAccess) {
return callback(new UnauthorizedError('Access denied.'));
}
callback(null, user, context);
}