Rails gem devise_token_auth headers 在 web 控制台中足以访问 api,为什么?

Rails gem devise_token_auth headers in web console are enoguh to access api, why?

我正在学习如何在我的 rails 5 API 中实现安全性。我正在开发一个 angular 应用程序来使用 API,为此我正在实施 devise_token_auth gem,但在我对邮递员的测试中,我可以使用电子邮件注册和密码,然后我收到一个带有令牌(过期)、数据、content-type、客户端、uid 的响应,然后我从 angular 测试它并从我的浏览器和我可以看到的 Web 控制台注册从另一个应用程序访问 api 所需的所有信息。

设计方法authenticate_user需要参数:content-type,access-token,client,expiry,uid,但是每个人都可以访问这个信息,如果他们查看 Web 控制台中的响应,那么...我选择此信息并粘贴到 Postman 请求中,我可以访问我的受保护端点,那么这个 gem 有什么用?我错过了什么吗?

我在这里 sign-in 来自 angular,并在 Web 控制台中检查响应:

然后将信息粘贴到邮递员的新请求中以访问受保护的端点:

并且访问成功了,如何让header信息不显示在web控制台?

But everybody could access to this information if they take a look at the response in web console

Am I missing something?

是的。 “每个人”只能看到他们自己的令牌(不包括嗅探 http 之类的东西。您将使用 TLS,对吗?)。有了他们的代币,用户可以为所欲为,而您对此无能为力。

但是他们无法通过这种方式看到其他用户的令牌。

互联网就是这样运作的。 您正在登录并向服务器发送信息。 然后服务器用一个你下次可以使用的秘密令牌来代替用户名和密码来响应。 使用该秘密令牌,您可以执行后续请求,而不是使用您的用户名和密码。

关于您对 'everybody' 看到它的担忧。这就是您需要 SSL 加密的原因,这可以确保其他人无法读取您发送的用户名和密码,以及您收到的令牌。如果没有 SSL,您网络上的任何人或到服务器的路由都确实可以读取它。