在OAuth中自动执行用户授权步骤

时间:2011-06-08 03:41:30

标签: oauth authentication

背景:

  • 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 App查看用户的信息。

  4. 用户确认。 ( *

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

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

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


  8. 我的情况略有不同,区别在于:

    一个。用户是ParentSite.com的用户,并且在ParentSite.com上,当他们点击“MySite Module”上的某些链接时需要与MySite.com无缝连接

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


    Q1:我在“MySite模块”中需要做些什么才能启用所有这些功能? (请详细解答!)

    Q2:如何自动执行第3步和第4步?

1 个答案:

答案 0 :(得分:0)

好的,让我直截了当。单击“parentsite”中的某些内容会打开“mysite”,“mysite”,然后尝试操作“parentsite”中的内容,因此需要获得授权才能这样做?如果我错了,请忽略这个答案。

我也假设您可以控制parentsite.com - 否则我无法找到您完成您所需要的方式。

第1部分。

首先,mysite需要一个消费者密钥和秘密。

第2部分。

由于对mysite的调用是直接从parentite发出的,因此您可以直接在parentite服务中发出访问令牌(您已经知道哪个用户已登录)。因此,当访问mysite.com时 - 只需向其发送访问令牌及其所需的秘密。

第3部分。

好的,现在mysite.com应该有消费者密钥/秘密和访问密钥/秘密,应该能够与parentsite.com做一些事情。

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