首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Digg.com风格的oauth

Digg.com风格的oauth
EN

Stack Overflow用户
提问于 2011-03-14 10:01:30
回答 2查看 248关注 0票数 1

我一直在尝试弄清楚digg.com和其他类似网站是如何通过oauth处理身份验证的。通过oauth创建帐户非常简单,用户单击twitter/facebook连接按钮,然后digg向我们发送一个秘密,如果一切正常,这个秘密将被返回并存储为访问令牌。

但是,身份验证是如何工作的呢?例如,当我通过twitter点击登录按钮时,一个随机的秘密被发送到twitter。twitter是返回先前的访问令牌,还是digg获取twitter用户id,例如,将其与数据库中的存储值进行比较,然后使用那里存储的访问令牌?

例如: 1.用户通过twitter点击登录。2.发送一个秘密,twitter做一些处理并返回诸如用户名/id/等的信息……3.基于这些返回值之一,轮询数据库并加载用户行,验证成功。

我说得太离谱了吗?有没有人能开导一下我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-14 11:02:07

以下内容基于hueniverse提供的Workflow

用户通过Twitter点击登录。

Digg从Twitter请求一个请求令牌(不是特定于用户的,Digg可以用来获得用户的批准,以访问用户的信息)。

Digg收到请求令牌,并使用RequestToekn将用户重定向到推特OAuth用户授权URL,并要求推特在批准后将用户重定向回来。

OAuth要求服务提供商(Twitter)首先对用户进行身份验证,然后要求他们授予消费者(Digg)访问权限。

用户输入用户名和密码(如果用户尚未登录)。

Twitter通知用户谁在请求访问权限(Digg)以及被授予的访问权限类型。(我不熟悉Digg,所以以Stack Exchange为例,它只要求访问用户名。)

用户批准。

Twitter将请求令牌标记为用户授权。用户的浏览器被重定向回Digg。

Digg使用授权请求令牌并将其交换为访问令牌(用于访问受保护的资源)。在Stack Exchange的情况下,用户名,尽管这听起来有点奇怪)。

Digg是通过Twitter登录的。

这是我的一张非官方照片:

上面是基于OAuth 1.0的官方指南,但根据Introducing OAuth 2.0

OAuth 2.0是一个全新的协议,不能向后兼容以前的版本。但是,它保留了以前版本建立的整体架构和方法,并且相同的介绍(来自OAuth 1.0的官方指南)仍然非常适用。

票数 1
EN

Stack Overflow用户

发布于 2011-03-14 16:53:41

如果你想实现这样的身份验证,你可以看看example ZF application,它展示了一种使用twitter、facebook、google等实现身份验证的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5294010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档