我试图围绕OAuth2和Perl(即Net :: OAuth2) - 特别是为数据库设置RESTful API,以及使用它的应用程序.
Perl Oauth2包把我带到Net :: OAuth2.
尽可能接近,我需要做几件事(如果我在某处的杂草中,请纠正我):
服务器端:构建REST服务器(目前正在玩这个mojolicious),它与数据库进行通信.
服务器端:构建身份验证/授权服务器(??)
客户端应用程序:使用WWW :: Mechanize(或某些此类)与REST服务器通信
在我的脑海中,这是它的工作原理:
客户端应用程序有一个API密钥(在服务器(REST服务器?Auth服务器?)注册,并"烘焙"到客户端)
用户在服务器上的数据库中的表中有一个条目(用户名和密码)
用户启动客户端应用程序,并尝试访问受保护的资源(比如更新行)(例如,再次通过在客户端中选择"执行此操作"菜单选项;客户端将其转换为REST API URI,例如http://the.rest.server/api/thisthing)
服务器将客户端重定向到(服务器的)身份验证/授权位
服务器,客户端和用户进行魔术OAuth舞蹈以验证用户身份
服务器,客户端和用户进行另一次神奇的OAuth舞蹈,以确保用户有权查看该资源URI
如果一切都很好,服务器会将客户端重新定向到最初请求的资源URI(需要任何auth parms).
这是对这个过程的合理评估吗?
如果是这样,将"身份验证/授权"作为REST服务器的一部分或作为完全独立的服务器更有意义吗?(在相同的硬件上).
Net :: OAuth2 :: Profile :: WebServer很好地解释了客户端应用程序端必须发生的事情.
http://cpansearch.perl.org/src/MARKOV/Net-OAuth2-0.55/t/中的测试(除非我真的遗漏了什么)是关于使用Net :: OAuth2 webserver配置文件,这将(再次)是"客户端应用程序".
还有其他编写客户端的示例 - 连接到现有的OAuth2服务器,例如Google API的东西 - 但我找不到编写服务器的示例....(如果可以的话,我非常愿意使用RTFM 找到 FM ...指针赞赏!)