3

我阅读了基于令牌的身份验证并获得了通用 ID。我不明白的是,如果所有通信都与您自己的 api 后端(在我的情况下为 rails)进行,为什么在前端(在我的情况下是 ember)我需要这样的令牌。如果您与自己的后端严格通信,并且将身份验证留在该后端,那么为什么需要在 ember 应用程序中使用令牌?

您的后端有时会充当代理,但这很糟糕吗?如果可能,直接从 ember 应用程序执行此操作会更好吗?我会(主要)去推特查询。

感谢您分享您的想法。

4

1 回答 1

4

我自己对这个话题有点陌生,但你的问题也有点不清楚。如果您指的是 oAuth 系统中使用的消费者密钥令牌,则需要这些令牌以确保使用您的 API 的第三方实际上已被授予使用权限 - 没有消费者密钥的任何人都无法使用您的 API。

或者,如果您指的是使用身份验证令牌对用户进行身份验证...当您创建具有身份验证的 Rails 应用程序(例如使用设计 gem)时,还会创建/使用会话控制器。会话(/cookies)基本上是一种“记住”用户已登录的方式。这避免了在用户执行的每个操作时都必须重新发送用户名/密码以验证他/她的身份。

当涉及到网络应用程序时,这种方法非常有效,因为所有浏览器都支持 cookie。但是,对于移动应用程序,情况并非如此。使用本机应用程序时不可能保留会话/cookie(这在技术上是可行的,但从我所读到的内容看来,它似乎需要相当多的体力劳动和一些代码魔法才能使其正常工作)。

现在,当您为您的应用程序创建 API 时,您需要记住您的 API 可能用于创建移动应用程序(将来由您或如果您向公众开放)。这意味着使用会话可能不是一个好主意。对于需要授权的每个请求,都需要发送用户名/密码,以确保用户有权执行请求的操作。但是在每个请求中发送用户名/密码绝对是个坏主意。这就是令牌身份验证的用武之地。如果您曾经使用过设计,您会注意到有一个启用令牌身份验证的选项。这基本上允许第 3 方发送令牌而不是用户名/密码,并且工作方式相同。

(我自己对这个话题还很陌生,从我迄今为止收集的信息来看,这似乎是事情的运作方式。现在,如果我在解释/理解中犯了任何错误,我希望人们能纠正我。)

于 2012-12-09T17:31:43.833 回答