没有访问令牌的OAuth2客户端

Mat*_*ddy 3 php api oauth-2.0

所以在我开始之前,我是一个OAuth2新手,所以仍然试图真正地围绕各种许可范围和补助.

我已成功使用Laravel OAuth2 Server软件包成功实施OAuth2服务器.

我正在处理的当前网站将使用client_credentials授权类型从API中简单地获取食物.我已经设法成功地工作,并可以使用提供的访问令牌进行API调用.

但是,我想知道如何实现类似于Instagram,Soundcloud等的架构,它们不需要access_token基本端点,只需要一个client_id.他们如何做到这一点?这是自定义授权类型吗?

优选地,我只想在访问私有资源时开始要求访问令牌,例如用于修改用户信息的那些,等等.据我所知,对于这些我需要使用password授权类型,这不是不是问题.

Ale*_*chi 5

OAuth有一些流程,如2-legged或3-legged,它基本上告诉开发人员需要向服务器发出多少请求才能获得他想要的资源.

例如,在两条腿的流程中,您发送带有您的ID和密码的请求(第一个请求),您返回一个access_token并使用该令牌,您可以对您想要的资源(第二个请求)提出其他请求.

回到你的Instagram示例,你可以考虑使用client_id单步OAuth流程,因为你只向服务器发出一个请求以获得你想要的资源.

您可以将此类流用于不太敏感的资源,例如个人资料照片或用户的昵称.

单脚流程的实现很简单: - 如果user_id有效并且应用程序不需要用户批准来访问所请求的资源,请继续显示资源.

因此,实现单脚流程包括检查client_id是否有效并检查所请求的资源是否需要用户权限.话虽这么说,您可以使用1-legged来请求用户个人资料照片,但您不能使用相同的流程来请求用户的私人消息.

您可以在OAuth Bible中阅读有关每个OAuth流程的更多信息.