我正在实现一个webapp,它利用内部/私有rest进行后端处理。我计划为它实现一个基于令牌的身份验证。我读到一些关于它的东西,碰到了X-8月的记号,还有更多的记号.
我看不出它们之间有什么区别,因为它们都是带有生成标记的头。但我想用标准的方式来做。
哪一个更适合我的需要。如果没有,哪种类型的令牌更合适?
发布于 2016-09-12 10:19:34
我只会回答我自己的问题,以防万一对别人有用。
最后,我们使用带有Bearer令牌的身份验证头实现了一个进程。它基本上是一种向潜在用户/客户提供的令牌。
您可以通过身份验证端点传递它的一种方式,如果它们传递正确的用户名或密码,则可以使用Bearer令牌进行响应。
然后,对受保护资源的后续请求将在身份验证头中使用该令牌。
关于它的一点参考:https://www.rfc-editor.org/rfc/rfc6750
这里有一个很好的解释:
希望能帮上忙。
发布于 2014-07-07 20:31:01
我认为这是没有普遍答案的。首先,我怀疑您可能会混淆标头和标记,所以让我们从这里开始。这是常见的HTTP方法中的一个片段:
GET /22789/610/144208714.mp4?token2=1404763288_a4b48d3fc547294893b3b8d817ef1c59&aksessionid=690e90bada20cdc5 HTTP/1.1
Host: pdl.vimeocdn.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
DNT: 1
Range: bytes=427217-
Referer: http://vimeo.com/59253805
Cookie: aka_debug=cpcode:133150~clientip:87.81.132.48~ghostip:176.255.247.64~requestid:57d39e3~time:1404762182~ghostforwardip:~edgecache:cache-hit
Connection: keep-alive注意在GET请求行的正文中,令牌是如何位于问号后面的。不管是什么“?”称为请求参数,这取决于您是否将此参数命名为“token”、“token 2”或“mySuper散列”。在这个特殊的例子中,令牌以类似unix的时间戳开头,所以如果您尝试将这个请求粘贴到浏览器中,当链接过期时,访问将被拒绝。
第一行后面的每一行基本上都是一个标题。虽然有一些传统的标题(例如主机或时间),但完全取决于您如何命名您想要用于特定目的的标题。
在nginx和Apache服务器中,始终存在变量,通过这些变量可以同样轻松地访问参数和头。此外,nginx允许您基于令牌配置条件访问,这样您甚至不需要成为程序员(除了配置行正确的能力之外),您可以查看一下:module.html
如何构造该令牌是一个特定的体系结构决定。您可以基于时间、整个URI、客户端的IP地址等保护访问。通常情况下,它比看起来要复杂得多,因为您需要考虑到授权用户可能落后的访问网络中的许多可能性。在nginx的情况下,您被限制在md-5散列。它是一个老的好-快的方法,但它被认为是妥协的,所以如果您想要更好的保护,您可以在您自己的实现中考虑sha-1 (库可以在openssh包中获得)。
https://stackoverflow.com/questions/24618369
复制相似问题