2011-06-08 89 views
2

背景:自动化用户授权步骤

  • MySite.com - 我的网站
  • ParentSite.com - 客户 公司(这将有OAuth的 提供商模块就可以了)的网站
  • MySite模块 - 我已创建的模块,它将安装在ParentSite.com上 ,并允许 ParentSite用户被重定向到MySite(通过 OAuth)。我完全可以控制我在这个模块中做什么 。我将显示用户将点击并预期到达MySite并完全登录的链接。

我一个标准的OAuth设置的理解:

  1. 用户去上MySite.com为某个网址的OAuth登录到ParentSite.com。

  2. MySite应用程序从ParentSite中检索OAuth“请求令牌”。

  3. 浏览器被重定向到ParentSite.com网站,询问是否允许MySite应用程序查看用户的信息。

  4. 用户确认。 (*

  5. 浏览器被重定向到MySite.com,它现在为用户提供了OAuth“访问令牌”。

  6. 客户端应用程序使用来自步骤5的OAuth访问令牌作为认证,请求用户的身份信息(例如,ParentSite用户ID,名称,电子邮件地址),将REST请求发送回ParentSite.com。

  7. ParentSite验证OAuth访问令牌并将用户信息返回给客户端应用程序。


我的情况是略有不同,区别是:

答:用户是ParentSite.com的用户,并在ParentSite.com,需要无缝地连接到MySite.com当他们点击“我的站点模块”上的某些链接时

B.我希望用户授权步骤(步骤3和4)是自动的,即不提示用户。


Q1:我有什么做的 “mysite的模块”,以使这一切呢? (请详细解答!)

Q2:如何自动化步骤3和步骤4?

+0

对我来说就像一个整合项目。基本上,您正在为所谓的父站点添加功能,只是它在不同的域上。没有oAuth的开销,你绝对可以做到这一点。 – 2011-06-08 07:16:29

+0

是的,但它链接到mysite.com - 我还能如何安全地验证从“外部”进入的请求? @Jon – siliconpi 2011-06-08 10:51:52

+0

Twitter使用[xAuth](https://dev.twitter.com/docs/oauth/xauth)做了这样的事情,这对未来的访问者可能很有趣。 – 2012-09-26 20:26:40

回答

0

好吧,让我弄清楚这一点。点击“家长”中的某些内容会打开一些关于“mysite”的内容,然后“mysite”尝试操纵“parentsite”中的内容,因此需要授权才能这样做?如果我错了,请忽略这个答案。

我还假设你对parentsite.com有控制权 - 否则我无法看到一种方式让你完成你似乎需要的东西。

第1部分:

首先,mysite的需要使用者密钥和机密。

第2部分:

由于到mysite的呼叫从parentsite直接下达,您可以直接令牌的parentsite服务中发出的访问(你已经知道哪些用户登录)。所以当访问mysite.com时 - 只需发送它的访问令牌和秘密它需要。

第3部分:

好了,所以现在mysite.com应该有消费者密钥/秘密访问密钥/秘密,应该是能够做到的东西与parentsite.com。

请记住,这确实超出了oAuth规范,但完全可行。

+0

需要一些更正 - parentsite将安装我的模块。使用家长访问该模块的用户将看到从_leading_到mysite.com的链接。 (所有这些的最终目的是在家长和mysite之间的无缝整合)。为此,mysite.com应通过OAuth访问parentsite.com上的用户详细信息。 – siliconpi 2011-06-08 15:12:52

+0

好的。让我们这样说吧。如果您无法向家长发放访问令牌,则无法跳过第3步和第4步。 – 2011-06-09 06:49:09

+0

这有助于 - 我必须让亲们自动发布该令牌......让我探索一下。你能帮我理解我坐在父母身上的模块上的这些链接应该“通向”吗?当用户点击一个时,我需要传递关于正在执行的“动作”的数据,无论oauth需要什么。这个链接是什么样的? @Jon – siliconpi 2011-06-09 09:21:41