加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在生产中运行我的应用程序时缺少秘密令牌,密钥

发布时间:2020-12-17 02:48:49 所属栏目:百科 来源:网络整理
导读:我使用Rails 4和 Ruby 2.1并抱歉,但我正在使用Windows 我已经阅读了很多关于这个主题的内容“缺少秘密令牌,秘密密钥库”但实际上我并没有做任何事情. 我不使用Heroku,Git,Puma,Passenger或其他我读过的东西.我只是觉得我可以像往常一样运行rails s而不是像生
我使用Rails 4和 Ruby 2.1并抱歉,但我正在使用Windows

我已经阅读了很多关于这个主题的内容“缺少秘密令牌,秘密密钥库”但实际上我并没有做任何事情.

我不使用Heroku,Git,Puma,Passenger或其他我读过的东西.我只是觉得我可以像往常一样运行rails s而不是像生产那样运行rails -e production,看看我的Web应用程序的生产版本是什么.

但我有错误“Missing secret_token和secret_key_base for production environment,在config / secrets.yml中设置这些值”

我阅读了使用openSSL的解决方案,导出SECRET_KEY_BASE =<长字符串>但我确实理解这些解决方案.

我认为这是一个与密码连接系统有关的问题我感谢Micheal Hartl的Rails教程.所以禁用了SSL连接.但没有任何改变.

这是我的config / secrets.yml:

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

有人可以解释如何具体解决这个问题吗?

解决方法

GDMN我很抱歉,每个人都给你这么糟糕的解释和指示.好吧,那么,我们……

首先,每个人都是对的,你不再需要“secret_token”,但你确实需要“secret_key_base”.它的作用是保护您的访问者连接并使您的系统和应用程序更安全.这是一个简单的解释,但您需要在初学者级别担心.

其次,ENV代表“环境变量”,它们在所有操作系统中使用,它们指的是操作系统级别上的变量,这些变量包含您不希望有人试图访问您的站点的信息.例如,在Ruby On Rails中,如果你硬编码secrety_token_base字符串/哈希,那么黑客可以通过使用你的security_token来获取访问权限.我已经看到这种情况发生并且它并不漂亮,如果个人足够熟练,那么他们甚至可以访问您的root / admin帐户.

现在开始全力以赴.我只知道linux方式,我知道你正在寻找Windows方法,但这至少应该让你了解如何找到与你的操作系统相关的信息.

您需要做的第一件事是通过运行生成您的secret_token_base

bundle exec rake secret

据我所知,这是您在所有操作系统中执行此操作的方式.运行上面的命令后,控制台将返回一个字符串,您需要复制它.复制后,您将运行以下命令:

export SECRET_KEY_BASE=WhatYouJustCopied

然后我们将检查以确保通过运行来设置环境变量SECRET_KEY_BASE:

env | grep -E "SECRET_TOKEN|SECRET_KEY_BASE"

如果您没有设置SECRET_TOKEN,则只能获得KEY_BASE.

如果您想了解更多深度信息,请访问此link,它可能有点过时但大部分仍然相关,概念上它是相同的.祝你在新发现的ROR冒险中好运!一旦掌握了它,它就很有趣!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读