我正在做一个Java(JSP + Servlet)Web应用程序(我知道这个问题与技术无关).我希望使用最新的Goolge reCAPTCHA服务.
我正在玩这里找到的Goolge reCAPTCHA示例:
https://developers.google.com/recaptcha/docs/display#config
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="my_site_key"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我能够看到显示的recaptcha图像如下:

当我检查"我不是机器人"时,我得到以下信息:

如您所见,有一个验证按钮,根据我的测试,用户响应会发送给Google进行验证.
如何获取用户响应,以便我可以在自己的后端代码中验证用户响应(如Google建议的https://developers.google.com/recaptcha/docs/verify).
g-recaptcha-response POST parameter when the user submits the form on your site
Run Code Online (Sandbox Code Playgroud)
在服务器端,我可以通过点击"提交"按钮,仅在首先使用Google成功验证用户时才从参数"g-recaptcha-response"获取用户输入.否则,"g-recaptcha-response"在服务器端是空白的.这意味着只有在客户端验证成功后才能进行服务器端验证.如果是这样,那么在服务器端进行另一次验证有什么意义,这是Google reCAPTHA提供的选项?
我错过了什么吗?
OAuth 2.0草案v2-22第3.2节说:
在发出访问令牌请求时,客户端必须使用HTTP"POST"方法.
但是,如果您查看Facebook和Foursquare OAuth2实现,他们会要求客户端发出一个简单的GET请求来请求访问令牌.他们要求客户将client_id和client_secret放在URL中.
我正在构建OAuth 2服务器,在看到Facebook和Foursquare的实现后,我强烈考虑打破协议,允许客户端通过GET请求访问令牌.我的网站使用的是SSL,类似于Facebook和Foursquare.
所以我的问题是:我有什么理由不允许客户通过HTTPS通过GET方法请求访问令牌吗?
您是否知道如何使用url参数中的默认asp.net web api 2 OAuth 2授权机制生成的access_token.目前,我可以通过发送带有Authorization标头的请求来成功授权,如下所示:
Accept: application/json
Content-Type: application/json
Authorization: Bearer pADKsjwMv927u...
Run Code Online (Sandbox Code Playgroud)
我想要的是通过URL参数启用授权,如下所示:
https://www.domain.com/api/MyController?access_token=pADKsjwMv927u...
Run Code Online (Sandbox Code Playgroud) 我的用户在iOS应用中输入一些信息字段.必须在我的服务器上验证此信息,该服务器具有RESTful API.验证后,iOS应用程序的UI会更改以指示结果.
GET,PUT或POST似乎都不合适,因为我没有获得资源,也没有创建或更新资源.
实现此验证的最佳拟合REST操作是什么?
打开websocket连接的升级请求是标准HTTP请求.在服务器端,我可以像其他任何一样对请求进行身份验证.就我而言,我想使用Bearer身份验证.不幸的是,在浏览器中打开websocket连接时无法指定标头,这会让我相信使用承载身份验证来验证Web套接字升级请求是不可能的.所以 - 我错过了什么,还是真的不可能?如果不可能,这是设计,还是在websocket API的浏览器实现中明显疏忽?
这是我之前关于基于HTTPS的BASIC身份验证的问题的后续帖子
如果我使用HTTPS,资源和查询字符串的路径是否安全地传递到服务器?
即
URI: http:// server/path/to/a/resource?with = a&query = string
Server: server
path:/path/to/a/resource
query string: with = a&query = string
我有angularjs应用程序,用户输入保存到数据库的数据,然后在服务器端编译成pdf文件.所有访问都需要适当的身份验证标头.在填写所需数据后,用户按下按钮以保存数据,然后检索pdf文件.最好,我打电话给$window.open(url_generating_pdf我的angularjs应用程序.这很好用,并在另一个窗口中打开,但如何在此$window请求中添加身份验证标头?根据我的理解,我无法下载pdf,并使用ajax打印,所以我错过了这种身份验证.或者是否有其他方法可以从服务器调用url,并在另一个窗口中打开文件?
我要从我的WCF Rest/Json服务切换到WebApi2,我正在寻找一种方法来映射这个方法:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "Users?mail={mail}&pw={pw}")]
UserData getUserByEmailAndPw(String mail);
Run Code Online (Sandbox Code Playgroud)
我想通过电子邮件和密码查询用户,因此我无法使用打算使用ID的默认GET.据我所知,你应该通过Rest中的属性来做到这一点......
我是否只需要为此注册路线或者是否有更好的方法(可能按照惯例)?
如何使用JavaScript或Java清除浏览器(IE,Firefox,Opera,Chrome)历史记录,除了从浏览器本身清除它?
我正在尝试使用带有request模块的PasteBin API创建一个新的粘贴,如下所示:
var request = require("request");
request({
url : "http://pastebin.com/api/api_post.php",
method : "POST",
qs : {
"api_dev_key" : MY_DEV_KEY,
"api_option" : "paste",
"api_paste_code" : "random text"
}
},function(err,res,body){
...
});
Run Code Online (Sandbox Code Playgroud)
我的理解是,由于方法是POST并且提供了查询字符串参数,因此qs对象中的值将作为key=value对存储在正文中.(参考:如何在HTTP POST请求中发送参数?)
但是,我Bad API request, invalid api_option从PasteBin 回来了.所以我curl从我的终端编辑了这样的请求:
curl -X POST "http://pastebin.com/api/api_post.php" -d "api_dev_key=[MY_DEV_KEY]&api_option=paste&api_paste_code=some+random+text"
Run Code Online (Sandbox Code Playgroud)
这很有效.
所以这导致了两个问题:
POST提出请求并qs提供请求时,参数的具体情况如何? request模块发送URL编码的正文?