Session Oauth2是否可以替换会话(或其他类似方式)以将用户登录信息保存在服务器端?

Session Oauth2是否可以替换会话(或其他类似方式)以将用户登录信息保存在服务器端?,session,oauth-2.0,Session,Oauth 2.0,我对这有点陌生,如果我问一些愚蠢的问题,请容忍我 据我所知,会话是保存在服务器上的东西(文件或数据库中),客户端通过保存在cookie中的sessionid访问它。为了保留用户登录信息,我们可以简单地在会话文件或会话表中放置一个“logged_in”列和一个“expired”列 据我所知,Oauth2.0是为第三方客户机访问服务器而设计的。整个过程由一个access_令牌控制,它与sessionid非常相似(至少据我所知) 所以,我的问题是,是否可以使用Oauth2.0完全替换会话?也就是说,即

我对这有点陌生,如果我问一些愚蠢的问题,请容忍我

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

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

所以,我的问题是,是否可以使用Oauth2.0完全替换会话?也就是说,即使人们使用我设计的网站(不是第三方网站)访问我自己的服务器?因此,我有一个统一的授权框架,供用户访问我自己的网站和任何第三方网站

使用session和oauth2.0有什么优点和缺点吗

最后,移动应用程序呢?我知道对于第三方移动应用程序,他们通常使用oauth访问服务器(许多网站提供oauth api)。如果我要为自己的服务器(而不是第三方)编写自己的应用程序呢?OAuth2.0在这里也适用吗

总而言之,我的问题是,Oauth 2.0是否具有通用性,可以用于各种设备的各种用户授权控制情况


非常感谢。

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

给你一个类似的例子:假设你的银行里有一个保险箱(即你受保护的资源)。会话是你在银行的身份证:把它交给别人,他就是你,他可以从你的保险箱里拿到一切。另一方面,代币是对其他人进入您的保险箱的有限授权:例如,您批准他可以在安全警卫监视时从您的保险箱中获得10美元


总之,会话和令牌是不可交换的。

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

给你一个类似的例子:假设你的银行里有一个保险箱(即你受保护的资源)。会话是你在银行的身份证:把它交给别人,他就是你,他可以从你的保险箱里拿到一切。另一方面,代币是对其他人进入您的保险箱的有限授权:例如,您批准他可以在安全警卫监视时从您的保险箱中获得10美元

总之,会话和令牌是不可交换的