英文:
Go, basic access authentication
问题
谷歌Go支持解码基本访问认证调用吗?我如何从http.Request中获取用户名和密码?
英文:
Does Google Go support decoding of basic access authentication calls? How do I get the username and password from the http.Request?
答案1
得分: 3
Go在浏览器中以URL形式输入基本身份验证时似乎无法拦截,但它允许从其他调用它的应用程序中获取它。
例如,使用一个简单的Python代码来进行HTTP JSON RPC:
from jsonrpc import ServiceProxy
access = ServiceProxy("http://user:pass@127.0.0.1:8080/")
print access.getinfo()
在Go中调用:
// r *http.Request
r.Header["Authorization"]
会得到以下字符串:
[Basic dXNlcjpwYXNz]
以及
dXNlcjpwYXNz
经过Base-64解码后得到
user:pass
因此,在Go中进行一些基本身份验证是可能的,尽管可能不是一个可靠的方法。
英文:
Go does not seem to intercept basic authentication when it is typed as an URL in a browser, but it does allow one to get it from some other applications calling it.
For example, using a simple Python code for HTTP JSON RPC:
from jsonrpc import ServiceProxy
access = ServiceProxy("http://user:pass@127.0.0.1:8080/")
print access.getinfo()
And in Go calling:
// r *http.Request
r.Header["Authorization"]
One gets this string:
[Basic dXNlcjpwYXNz]
And
dXNlcjpwYXNz
Base-64 decoded gives
user:pass
So some basic authentication in Go is possible, although it might not be something one can rely on.
答案2
得分: 0
似乎没有办法获取用户提供的身份验证信息,但是您可以通过调用SetBasicAuth
来提供有效的用户名和密码进行HTTP基本身份验证。
英文:
There seems to be no way to get the user-provided authentication info, but you can provide the valid username and password for HTTP Basic Authentication by calling SetBasicAuth
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论