我已经开发了一个REST Web服务,我想实现一个OAuth服务提供程序来主要验证两条腿的OAuth请求.有谁能请我指出在Delphi中创建的OAuth服务提供程序的实现.提前致谢.
我使用PhilSturgeon创建的codeigniter rest服务器库创建了一个rest服务器:
github.com/philsturgeon/codeigniter-restserver
现在,我正在使用Codeignitor rest客户端:
github.com/philsturgeon/codeigniter-restclient
到get/ post来自/到服务器的数据,我成功地获得/发布了正常数据.
从其他客户端将图像文件发布到其余服务器的最佳方法是什么?
此外,假设其余服务器使用摘要式身份验证,有人可以如何访问API并从C#.NET执行所有get/post操作?[任何图书馆可用吗?]
我在将json对象发布到使用REST的API时遇到了一些困难.我是新手使用cURL,但我已经搜遍了所有人,试图找到我的问题的答案,但是已经做得很短.我的cURL请求总是返回false.我知道它甚至没有发布我的json对象,因为我仍然会从url获得响应.我的代码如下.
<?php
//API KEY = APIUsername
//API_CODE = APIPassword
$API_Key = "some API key";
$API_Code = "some API code";
$API_email = "email@email.com";
$API_password = "ohhello";
$url = "http://someURL.com/rest.svc/blah";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
header('Content-type: application/json');
$authData = "{\"APIUsername\":\"$API_Key\",\"APIPassword\":\"$API_Code\",\"EmailAddress\":\"$API_email\",\"Password\":\"$API_password\"}";
curl_setopt($ch, CURLOPT_POSTFIELDS, $authData);
//make the request
$result = curl_exec($ch);
$response = json_encode($result);
echo $response;
curl_close()
?>
Run Code Online (Sandbox Code Playgroud)
$ response返回"false"
有什么想法吗?
我一直在使用ASP.Net成员资格/角色提供程序在WCF 4.0 RESTfull服务中使用用户名/密码身份验证/授权.
花了两天时间试图找到大多数人都同意的东西,我放弃了.很多混乱似乎是因为专门针对WCF 4.0的信息很少.
有人可以善待
编辑:赏金的人谁可以为用户提供用户名/密码认证和授权使用WCF服务应用程序模板在VS 2010中一个问题的REST WCF服务4.0的完整样本(甚至只是一个完整样本的链接).
我正忙着研究如何在移动应用程序中使用REST服务,并希望获得一些见解.方案如下.
考虑一个向用户提供服务的Web应用程序.Web应用程序也将成为用户的主要交互点.这将在Grails中完成,并使用Spring Security进行保护.
现在,我们希望提供REST服务,以便用户可以通过移动应用程序使用该服务.由于Grails对现有的Web应用程序RESTful提供了很好的支持,我们将使用内置的Grails支持.
我现在的问题是,什么是保护REST服务接口的"最佳"方式,以便可以从移动应用程序(本机iOS,Andriod,WM7,BB)使用它.
交换的信息非常敏感,因此越安全越好.
谢谢
我正在使用Oauth2.0.在那我可以得到access_token和instance_url.这两个是否有任何到期时间.
我可以存储它们并将其用于我的所有REST调用,而无需获取新的access_token和instance_url.我有可能长时间甚至几天使用它.
我的Symfony2自定义身份验证提供程序现在似乎正在运行.
用户提供商
我几乎使用了FOSUserBundle,但我甚至没有为我的用户提供电子邮件地址,而且我不需要增加的功能或复杂功能.
所以我只是使用实体提供程序.
我将我的编码器设置为纯文本,因为API客户端库为我处理这个问题,但是,另一个障碍:似乎用户现在正在针对这些用户记录进行身份验证.
在我实现实体用户提供程序之前,我的登录表单给了我有效的响应:正确的凭据没有产生错误,错误的凭据导致我的自定义"不正确的用户/通过错误".
现在,即使我提供了我知道正确的凭据,我得到的只是错误消息"Bad credentials" ,好像我正在实现UserAuthenticationProvider,但据我所知,我不是.我的自定义提供程序直接实现AuthenticationProviderInterface.
所以目前我认为我错误地实现了实体用户提供程序,这样它就会以某种方式覆盖我的自定义身份验证提供程序.同时配置实体用户提供程序和自定义身份验证提供程序的正确方法是什么?
档
security.yml的相关部分
encoders:
WordRot\PlayBundle\Entity\User: plaintext
providers:
wordnik_users:
entity: { class: WordRotPlayBundle:User, property: username }
firewalls:
wordnik_secured:
pattern: ^/play
logout: ~
anonymous: ~
# The next line specifies the custom authentication provider:
wordnik: true
form_login:
provider: wordnik_users
login_path: /login
check_path: /play_check
# on success
always_use_default_target_path: true
default_target_path: /play
Run Code Online (Sandbox Code Playgroud)
编辑
这可能证明是有用的.这是主分支的差异......
我正在使用Martin Fowler最近在他的博客(http://martinfowler.com/articles/microservices.html)中描述的微服务架构创建一系列RESfull服务但是我需要所有方法都由授权用户专门访问.我正在实现一个服务外观,它应该处理用户身份验证并将api请求重定向到适当的服务.Facade如何处理将身份验证传递给底层服务?是应该所有服务都独立使用Basic http身份验证还是有一种方法让Facade继承它验证的用户?
谢谢
我401 Unauthenticated在登录后无法运行经过身份验证的测试(服务器返回).
var should = require('should'),
_ = require('lodash'),
app = require('../../../server'),
mongoose = require('mongoose'),
User = mongoose.model('User'),
request = require('supertest');
var user
, user1;
describe('GET /api/jobs', function () {
before(function (done) {
user = new User({
provider: 'local',
name: 'Fake User',
email: 'test@test.com',
password: 'password'
});
// Clear users before testing
User.remove().exec();
request(app)
.post('/api/users')
.send(user)
// end handles the response
.end(function(err, res) {
if (err) {
throw err;
}
res.should.have.status(200);
res.body._id.should.exist;
user1 = request.agent(app); //user1 will be …Run Code Online (Sandbox Code Playgroud) 有没有办法在Java代码中唯一标识我的Android应用程序?也许是包名和其他东西的某种组合?我知道有一种方法可以识别出独特的Android 设备,但这不是我想要的.
我希望能够唯一地识别我制作的 Android应用程序,以便我可以将该信息传递给我自己的私有RESTful API.这将允许我验证呼叫来自我的Android应用程序而不是另一个未经授权的应用程序.我希望我的RESTful API只能与我制作的应用程序一起使用,因此没有人可以欺骗它或未经授权访问它.
或者这是不可能的?我只是想知道像Snapchat这样的应用程序是如何拥有自己的登录信息的.显然有些东西可以保护它.