1

我对此有点陌生,如果我提出愚蠢的问题,请多多包涵。

据我所知,会话是保存在服务器上的东西(在文件或数据库中),客户端通过保存在 cookie 中的 sessionid 访问它。为了保留用户登录信息,我们可以简单地在会话文件或会话表中放置一个“logged_in”列和一个“expired”列。

据我所知,Oauth2.0 是为第三方客户端访问服务器而设计的。整个过程由 access_token 控制,它与 sessionid 非常相似(至少据我所知)。

那么,我的问题是,是否可以使用 Oauth2.0 来完全替代 session?即,甚至有人使用我设计的网站(不是第三方网站)来访问我自己的服务器?这样我就有了一个统一的授权框架,用于用户从我自己的网站和任何第三方网站进行访问。

使用 session & oauth 2.0 有什么优缺点吗?

最后,移动应用程序怎么样?我知道对于第三方移动应用程序,他们通常使用 oauth 来访问服务器(许多网站都提供 oauth api)。如果我要为自己的服务器(不是第三方)编写自己的应用程序怎么样?Oauth 2.0 也适用于此吗?

总结一下,我的问题其实是,Oauth 2.0 是否通用,可以在各种设备的各种用户授权控制情况下使用?

非常感谢。

4

1 回答 1

1

尽管两者都是短暂的实体,但会话 ID 和 OAuth 令牌是根本不同的,并且用于不同的场景。会话用于识别 Web 应用程序的用户,因此与最终用户相关。OAuth 令牌用于授予对第三方服务的访问权限,以访问一组有限的受保护用户资源(例如,读取用户联系信息或从用户帐户发送邮件)。虽然token是指授权者(即最终用户授权授权),但token更多地与第三方应用程序相关。

给你一个类似的例子:想象你的银行有一个保险箱(即你的受保护资源)。session 是你在银行的 id:把它给别人,他就是你,他可以从你的保险箱里得到一切。另一方面,令牌是对他人对您的保险箱的有限授权:例如,您批准他可以在保安监视时从您的保险箱中获得 10 美元。

总而言之,会话和令牌是不可互换的。

于 2013-09-16T11:04:30.120 回答