功能标志是否适合授权/权限?



功能标志或功能开关可以很好地管理谁可以看到什么功能。这个问题的想法是我们是否可以使用相同的功能标志工具来管理授权/用户权限。

例如,我们可以使用一些功能标志工具来控制对管理页面的访问吗?如果没有,不使用它的原因是什么?

如果不需要健壮的授权系统,使用Feature Flag进行授权是一个很好的解决方案。假设你已经知道一些关于用户的信息,你可以评估一个属性的特征标志,你想关联到管理权限,如电子邮件地址或帐户id,并给用户访问应用程序的管理页面。

例如,使用DevCycle React SDK (https://docs.devcycle.com/docs/sdk/client-side-sdks/react),你可以用电子邮件地址识别用户:

const variableKey = 'admin-permission'                             
const defaultValue = false                                        
const featureVariable = useDVCVariable(variableKey, defaultValue) 

const client = useDVCClient()                                     

useEffect(() => {                                                 
const newUser = {                                               
user_id: 1,                                
email: 'test@example.com',                                             
}                                                               
if (client) {                                                   
client.identifyUser(newUser)                                  
.then((variables) => {                                    
console.log('Updated Variables:', variables)            
})                                                        
}                                                               
}, [client]);                                                     

然后您可以设置用户定位,为电子邮件地址中有example.com的用户返回true

建筑cavet:

权限通常与应用程序的用户管理系统紧密耦合,因此通常会将其放在那里,以及用户管理自己和其他用户权限的能力。在使用功能标志进行身份验证是一个很好的短期修复,而你正在构建权限管理的功能在你的应用程序中,我认为架构上最好将其直接构建到你的应用程序或使用目的构建框架。