php爬取oauth数据,php – 使用oAuth或其他实现访问

我正在尝试一种方法来打开一个网站,将其数据库的一部分打开到其他第三方网站,类似于Twitter让webapps连接到其数据库以检索数据和可能存储数据的方式.

我最初的研究让我去了oAuth(或者它是openID?).

我需要做的是让第三方网站登录网站上的用户帐户,但只能读取和写入属于他们的数据,而不能触及属于其他第三方网站的数据?

我对oAuth的细节有点模糊.我是否需要创建某种API或oAuth是我唯一需要实现的东西?正如你所看到的,我不知道如何做到这一点,所以任何更专家的解释都会有所帮助.

如果我实施oAuth,其他第三方网站是否能够访问该网站的数据?

我是否可以让其他第三方网站将用户注册到主网站而无需用户访问主网站?有人认为这是个坏主意吗?是/否,为什么?

oAuth如何帮助我确保第三方网站不会读取/写入/更改与其他第三方网站相关的用户数据.

我确信这比我想象的要容易,但我是oAuth的新手,所以图片还不清楚.

解决方法:

首先,我们要清楚OAuth和OpenID是两个独立的东西. OpenID仅用于身份验证. OAuth旨在用于身份验证和授权.在这种情况下,授权是指客户端应用程序被授权访问和更新与经过身份验证的用户关联的数据的想法.

What I need to do is let the third party websites login to a user’s account on the website, but only read and write data that belongs to them and not be able to touch data that belong to other third party websites?

如果存储在每个第三方网站上的数据与存储在您的身份验证服务器上的数据互斥,那么您可能希望坚持使用OpenID.

但是,如果您希望您的第三方网站更新应与所有其他第三方网站共享的用户信息(即名字,姓氏,街道地址,信用卡信息等),那么您可能需要与OAuth一起去.我知道OpenID规范有一个扩展允许这种事情(实际上,你可以根据自己的实现调整它),但从一般意义上讲,这类东西属于OAuth.

I’m a bit fuzzy of the details of

oAuth. Do I need to create some sort

of an API or is oAuth the only thing I

need to implement?

除了请求令牌和使用OAuth服务器授权客户端应用程序的初始细节之外,您还必须实现其他方法来检索和更新有关已验证用户的信息.例如,Twitter要求您的应用程序与特定用户进行身份验证,并授权更新用户的状态.除了基本的OAuth实现之外,该更新状态方法也是其API的一部分.

If I implement oAuth, will other third

party websites be able to access data

from the website? Does anyone think

this is a bad idea? yes/no and why?

这些网站仅允许访问已通过OAuth服务器验证并授权该网站访问其数据的用户的数据.但是,只有具有有效消费者密钥的网站才能请求正确的令牌才能开始OAuth会话.因此,只有您授权的网站才能与您的服务器进行交互.

这些令牌总是有可能在Session Fixation之前被劫持.但这种担忧不应妨碍您实施OAuth服务.这并不意味着不要担心.只是不要让它成为障碍.

Can I let other third party websites register the user to the main website without the user having to visit the main website?

不符合OAuth定义的当前规范. OAuth背后的想法是您的用户在OAuth服务器上注册.您的第三方客户端将此服务器用作身份验证点.但是,如果应用程序具有某种“主”帐户登录,则这并不意味着您不能实现某种API来注册用户(尽管这是它自身的安全风险).这不是推荐的.

and how does oAuth help me make sure that a third party websites does not read/write/change user data related to another third party website?

仅仅因为您使用OAuth并不意味着您的第三方网站无法将数据存储在自己的数据存储中. Flickr和Twitter都提供OAuth服务,但都没有在对方服务器上存储彼此的信息(没有flickr照片存储在Twitter的数据库中).

只要您没有在OAuth服务器上存储特定于每个应用程序的信息,就不会有问题.请记住,OAuth服务器用于对用户进行身份验证并存储应由所有应用程序共享的基本信息.我在此重申,如果您只想验证用户身份,那么请坚持使用OpenID.

编辑

Can I segment the permissions such that when the user authorizes site A, he doesn’t authorize it to his full account, but just authorizes it to access its own data on his account? Can oAuth do this?

在您的实施中,您可以.这将是检查与用于访问该OAuth端点的访问令牌相关联的消费者密钥的问题.请记住,每次调用API的授权部分都必须包含访问令牌.因此,如果要将该端点锁定到特定应用程序,则可以通过访问令牌和使用者密钥进行检查.

标签:php,authentication,openid,oauth,api

来源: https://codeday.me/bug/20190621/1257182.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值