运维开发网

网络服务 – 在应用程序之间重用OAuth令牌是否可能(和/或好主意)?

运维开发网 https://www.qedev.com 2020-07-09 21:19 出处:网络 作者:运维开发网整理
我正在开发一个使用xAuth登录Twitter的iPhone应用程序.该应用程序还与我自己的Web服务进行通信.我不想在Web服务中维护用户模型,而是允许任何已经通过Twitter进行身份验证的人发出请求. 高级用例是这样的:用户通过应用程序登录并与Twitter交互.他们还可以通过应用程序与我的Web服务进行交互. Web服务本身从不与Twitter交互.我不想在我这边维护一个单独的身份验证系统
我正在开发一个使用xAuth登录Twitter的iPhone应用程序.该应用程序还与我自己的Web服务进行通信.我不想在Web服务中维护用户模型,而是允许任何已经通过Twitter进行身份验证的人发出请求.

高级用例是这样的:用户通过应用程序登录并与Twitter交互.他们还可以通过应用程序与我的Web服务进行交互. Web服务本身从不与Twitter交互.我不想在我这边维护一个单独的身份验证系统,而是希望服务器说“好吧,如果Twitter说你是@joshfrench,那么你可以访问.”

不过,我不确定如何在服务器端验证请求.我如何将一些身份验证证明从移动客户端传递到我的Web服务?我可以发送现有的Twitter令牌并从服务器验证它吗?或以某种方式用我的Twitter应用程序的凭据签署请求?这甚至是对OAuth的有效使用吗?

如果你将你的Twitter应用程序密钥和秘密存储在他的iPhone应用程序和服务器上,然后以某种方式将用户的oauth令牌(也称为“访问令牌”)密钥/秘密从 iphone应用程序传输到服务器,那么你可以来自服务器的相同类型的api调用.

consumer = OAuth::Consumer.new(app_key, app_secret, …)
access_token = OAuth::AccessToken.new(consumer, user_key, user_secret)
response = access_token.get('/stuff.xml')

那么,将该信息从应用程序传输到服务器是否可以?如果您安全地执行此操作,并且它符合用户对应用程序行为的期望,则可以非常好地使用oauth.

Twitter的服务条款可能不允许 – 我可以想象有些东西说你不能通过网络转移用户的访问密钥,或者某些东西. (总的猜测,我不认为这种情况特别可能)

0

精彩评论

暂无评论...
验证码 换一张
取 消