cap*_*ght 5 authentication django oauth
我最近发布了一个有关身份验证的问题,但是没有收到任何答复,因此我想出了另一种方法来询问问题,而不必赘述。
我在应用程序文档中看到的是三种传递访问令牌以进行身份验证并接收我要获取的信息的方式:HTTP Digest身份验证,HTTP Basic身份验证和Bearer令牌身份验证。我不清楚它们之间的区别,并且我对Bearer令牌auth的尝试(请参见STEP 5)没有用。
有人可以解释这三个是什么,并希望指出我做错了什么吗?
“HTTP 基本身份验证”和“HTTP 摘要”使用用户名和密码进行身份验证。HTTP 摘要身份验证更安全,因为它不会以纯文本形式发送用户名和密码。
“HTTP Bearer Auth”使用 access_token 进行身份验证。
我觉得你的 HTTP Bearer Auth 代码没问题。
HTTP 基本身份验证和 HTTP 摘要身份验证之间没有太大区别。
对于基本 Auth Before 请求,使用 oAuth 系统用户名附加冒号并与密码连接。结果将使用 Base64 算法进行编码。
例如,说usernameisdemo和 your access_tokenis,123在这种情况下,连接后的结果字符串将是'demo:123',一旦我们应用 Base64 编码,它将变成ZGVtbzoxMjM=
现在,此编码字符串在 oAuth 提供者中传输并由HTTP headeroAuth 提供者解码。同样,这不是一个非常强大的编码机制,并且可以轻松解码,因为此 Auth 系统不适用于非常高安全的系统。
同样,Digest 也使用HTTP协议来发送和接收数据,但它比在 .Digest 中发送数据的基本 OAuth 好得多plaintext。Digest 使用MD5 cryptographic hashing算法类型来加密您的数据password/access_token,除此之外,它还使用nonce值来阻止重放攻击。
希望这能让您对它们的工作方式有所了解。
更新
我刚刚在 Gimme 酒吧看到了代码
GET /api/v0/tags HTTP/1.1
Host: gimmebar.com
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.6+ (KHTML, like Gecko) Version/4.0 Safari/528.16 Titanium/1.1.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Authorization: Digest username="funkatron", realm="GimmeBarAPI", nonce="7a3ab1f9cde605f27797cd04c4d1fcf6", uri="/api/v0/tags", response="3654f9b1b2ba9489e1f01ae792852987", opaque="94619f8a70068b2591c2eed622525b0e", algorithm="MD5", cnonce="6897ccbff3b08776ab61e69a814c05b4", nc=00000001, qop="auth"
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
如果您在发送请求时看到它们正在传递与 , 一起使用的哈希算法nonce。username因此,它们都在应用程序中创建它们并放置在标头部分中。您需要找到我们需要放置的标头名称。