NodeJS Auth0访问控制

2admgd59  于 2023-05-28  发布在  Node.js
关注(0)|答案(2)|浏览(173)

我使用Auth0来管理几个不同应用程序中的大量用户,其中一些是基于Web的,另一些是桌面和移动的。在每个用户的 meta数据下,我有一个每个用户都可以访问的应用程序阵列,我想知道在进行身份验证时如何检查这一点,以便如果不在该列表中,则拒绝访问。
我可以在应用程序上很容易地做到这一点,但在Auth0上做到这一点会很好。

0h4hbjxa

0h4hbjxa1#

使用如下定义的规则为我提供了我正在寻找的功能:

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);
}
du7egjpx

du7egjpx2#

您可以使用Auth0 FGA:https://docs.fga.dev/或其开源版本:https://openfga.dev/。请注意,截至2023年5月,它们未集成在主Auth0 Jmeter 板中,它们是一个完全独立的服务。

  • 免责声明:我为Auth0 FGA* 工作

相关问题