Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/WebApp谷歌应用程序引擎-在标题中测试用户/通过_Python_Google App Engine_Web Applications - Fatal编程技术网

Python/WebApp谷歌应用程序引擎-在标题中测试用户/通过

Python/WebApp谷歌应用程序引擎-在标题中测试用户/通过,python,google-app-engine,web-applications,Python,Google App Engine,Web Applications,当您这样调用web服务时: username = 'test12' password = 'test34' client = httplib2.Http(".cache") client.add_credentials(username,password) URL = "http://localhost:8080/wyWebServiceTest" response, content = client.request(URL) 如何将用户名/密码输入到

当您这样调用web服务时:

   username = 'test12'
   password = 'test34' 
   client = httplib2.Http(".cache") 
   client.add_credentials(username,password)
   URL = "http://localhost:8080/wyWebServiceTest"
   response, content = client.request(URL) 
如何将用户名/密码输入到服务器端的变量中(即我正在编写的web服务中)。 我检查了self.request.headers和self.request.environ,没有找到它们

(我没有使用Google登录,需要在我自己的数据库中弹出此用户ID/密码以验证安全性。)

我试图从这一页中找到一些想法:

谢谢

尼尔·沃尔特斯

以下是对Peter代码的轻微增强:

 auth = None 
 if 'Authorization' in self.request.headers: 
    auth = self.request.headers['Authorization']
 if not auth:

httplib2将仅在web服务器发出401响应后传递凭据,之后应在Authorization:标头中发送凭据。

凭据将显示在Authorization标头中。步骤如下所示:

   username = 'test12'
   password = 'test34' 
   client = httplib2.Http(".cache") 
   client.add_credentials(username,password)
   URL = "http://localhost:8080/wyWebServiceTest"
   response, content = client.request(URL) 
  • 客户端向您的应用程序发出请求,但未尝试授权
  • 服务器响应为“401需要授权”响应,“WWW Authenticate”头设置为“Basic realm=”something“(用于基本身份验证)
  • 客户机使用适当设置的授权标头进行响应(见下文)

  • 步骤3中客户端授权头的确切内容取决于所使用的授权方法。对于HTTP基本身份验证,它是base64编码的用户凭据-请参阅。对于HTTP digest auth,服务器的头和客户端的响应都有点复杂-请参阅。

    我还没有测试这段代码(插入smiley),但我认为这是您需要的。基本上,如果您的服务器没有将401回复到您的客户机,那么您的凭据将不会出现在标题中(客户机需要知道要提供什么凭据的领域)


    我很困惑。你们是说第一个调用并没有凭证,然后服务器返回401,然后客户端自动发送user/pass?但是无论如何-用户/通行证可用于web服务,对吗?上面的代码片段是在我的机器上运行的非GAE程序,它调用GAE web服务。它在web服务中,我想检查用户/通行证。(很高兴看到你的照片-我一直看到你的谷歌群)。在其他答案之后,现在就知道了。谢谢。这正是医生要的!谢谢我添加了“import base64”,并做了一个小改动——请参阅我的原始帖子的编辑。一个吹毛求疵的地方:作为一名装饰师,这会更好。:)这完全应该作为一个装饰师来完成。我只是想展示核心代码。感谢您的回复,特别是解释编码的链接。关于装饰器的好主意-但是我不停地花一天时间在它上面。以下是我的粗略尝试: