gpt4 book ai didi

ruby-on-rails - 如何在 AngularJS 和 Ruby on Rails 中实现功能标志?

转载 作者:行者123 更新时间:2023-12-03 01:29:34 24 4
gpt4 key购买 nike

对于前端有 Rails 后端和 AngularJS 的应用程序,如何实现功能标志或每个用户的条件功能?

This Video大致了解了如何做到这一点,这对我来说看起来相当粗糙。

我正在使用Rollout Gem对于本次授权。如果功能标志完全在客户端实现,我觉得这将是“禁用/启用功能的不那么安全和稳健的方式”

我无法使用<% if $rollout.active?(:chat, current_user) %>在部分中,因为它们不是 ERB,而是用作 Angular 模板的 HTML 页面。

提前谢谢您。

最佳答案

所以你可以使用JWT。 JWT 是一个 token ,您可以将其与 Rails 应用程序一起使用来对用户进行身份验证。想象一下它就像一张酒店卡。根据您支付的金额,您可以访问某些服务或其他服务。它可以让你进入车库或吃早餐。

转到技术细节,当用户登录您的应用程序时,rails 将创建其中一个 token ,并且 Rails 可以在其中放置您想要的任何标志,因此您可以发送包含以下内容的 token :

{user_id: 3, rollout: true, admin: true}

因此,在 Angular 方面,您可以解析该 token 并激活您需要的部分,大致如下:

<div ng-if="user.rollout"></div>

因此,根据您在 token 中获得的内容,将会显示页面的某些部分。

token 无法篡改,因此最终用户无法修改它,因为服务器会拒绝它。

在 Angular 本身中,你不能做太多其他事情,任何用户都可以创建一个 user 对象并将所有标志设置为 true,但决定用户可以看到什么的是 Rails API,所以使用最多可以获得一个没有任何数据的空管理页面,但这是不可避免的。

如果您想了解有关 JWT 的更多信息,请参阅 idea在这里 examples (包括 Rails 一个)

关于ruby-on-rails - 如何在 AngularJS 和 Ruby on Rails 中实现功能标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com