OAuth是什么

本文介绍了OAuth协议的基本原理,通过实例展示了如何让消费方在无需获取用户认证信息的情况下访问服务提供方的受保护资源。同时,文章记录了OAuth示例项目的搭建过程及常见问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。

一个典型的例子是某打印服务提供商printer.example.com(消费方),希望在无须用户提供其照片存储站点密码的情况下,访问用户储存在photos.example.net(服务提供方)上的个人照片。

 

OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。

在运行OAuth的web例子的时候,遇到问题的总结。

1、下载源代码

svn co http://oauth.googlecode.com/svn/code/java/ oauth-java

2、将core和example中的oauth-provider和webapp分别作为java项目导入eclipse中。   

core是一个项目   
oauth-provider是一个项目   
web是一个项目

3、将core作为一个jar从eclipse中导出,oAuth-core.jar

4、将oauth-provider以provider目录名部署到tomcat中

5、将webapp以web目录名部署到tomcat中

6、启动tomcat

7、访问 http://localhost/provider/  provider正常工作

8、访问http://localhost/web/index.jsp web正常工作

9、点击"Sample Provider",控制台提示错误信息为“java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available”

10、修改 consumer.properties

原来的内容:sample.serviceProvider.baseURL: http://localhost:9090/oauth-provider/
修改后内容:sample.serviceProvider.baseURL: http://localhost/provider/ 
新增加一行:sample.consumer.oauth_signature_method: PLAINTEXT

oAuth目前支持HMAC_SHA1、PLAINTEXT、RSA_SHA1算法

验证的过程分别验证以下几部分内容:
oauth_token token
oauth_timestamp 
oauth_signature 
oauth_signature_method 
oauth_consumer_key 

--------------------------------------

从高层次来看,OAuth按以下方式工作:

  1. 你的站点已与不同的webmail服务供应商建立了关系。
  2. 你共享一个密码短语或者公钥,这样你就能使用它访问web联系人。
  3. 你根据webmail服务供应商将用户重定向到登录页面。
  4. 该用户登录然后告诉webmail服务供应商你的站点访问其地址薄是没问题的。

 

Ryan Heaton已经实现了针对Spring security的OAuthhttp://spring-security-oauth.codehaus.org/

支持OAuth的站点包括Twitter、Ma.gnolia与Google(你可以在这里看到关于Alpha版的帖子)。

 

-------------------------

豆瓣API OAuth认证

http://www.douban.com/service/apidoc/auth

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值