首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户只能用自己的用户名调用path

用户只能用自己的用户名调用path
EN

Stack Overflow用户
提问于 2021-02-04 13:25:21
回答 1查看 272关注 0票数 0

我正在尝试实现Casbin身份验证,以便用户只能获得自己的用户名,但将其应用于一个组。示例:

/users/get/alice可以由用户名alice的用户调用。

/users/get/john50可以由用户名john50的用户调用。

alicejohn50不能调用对方的端点。

但是,我希望能够将此应用于组内的所有用户,因此理想情况下,我希望我的策略看起来如下:

p, staff-all, /users/get/:userid, GET, allow

这是我可以在策略和模型中实现的东西,还是需要在代码中实现?这听起来比在策略和模型中有更复杂的用例。

我现在的模式:

代码语言:javascript
复制
[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act, eft

[role_definition]
g = _, _

[policy_effect]
e = some(where (p.eft == allow)) && !some(where (p.eft == deny))

[matchers]
m = g(r.sub, p.sub) && keyMatch2(r.obj, p.obj) && regexMatch(r.act, p.act)

我在Casbin实例中看到了类似的东西,但它们似乎给出了一个特定的用户名,而不是通过组实现的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 15:52:12

参见此处的keyGet()函数:https://casbin.org/docs/en/function

比赛将会是这样的:

代码语言:javascript
复制
m = (r.sub == keyGet(r.obj, p.obj)) && <other_part>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66046585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档