ruby-on-rails – 在生产中运行我的应用程序时缺少秘密令牌,密钥
我使用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冒险中好运!一旦掌握了它,它就很有趣! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |