无状态RESTful API和第三方认证

Jie*_*eng 9 openid authentication web-applications oauth

我想使用第三方身份验证(OpenID,可能是OAuth,但我想OAuth用于授权),以便用户可以轻松登录.

但是,对每个请求进行身份验证意味着我多次呼叫第三方(例如Google),即使我不需要任何东西吗?例如,我使用OpenID身份验证,但我使用的API是内部的(例如/ api/tasks/add).

Ren*_*nov 9

让我们先解决一下理解问题.OpenID和OAuth有点不同.有一种记忆不同的简单方法:

  • OpenID适用于人类.简单示例:您想跳过无聊的注册步骤,让用户重用现有帐户.
  • OAuth适用于服务/机器人.简单示例:您希望脚本使用某些用户的数据访问外部API.

维基百科提供了一个简单的解释:

请注意,对于OpenID,该过程从应用程序询问用户的身份(通常是openid URI)开始,而在OAuth的情况下,应用程序直接请求访问API的有限访问OAuth令牌(代客密钥)(输入房子)代表用户.如果用户可以授予该访问权限,则应用程序可以使用API​​检索用于建立配置文件(标识)的唯一标识符.

在此输入图像描述

所以I want to use 3rd party authentication ... that user can login easily.可能意味着你将使用OpenID.

回答您的问题:您无需在任何请求上致电任何第三方服务.这将是非常低效和缓慢的.OpenID提供程序将返回用户的凭据,您很高兴.

在此输入图像描述

请确保您已正确识别要求.