我有以下实体:
我需要在移动应用中将OAuth实施到OAuth服务器,然后随后在API服务器中访问用户信息,但我在如何做到这一点上遇到了麻烦安全地实现。我只想到以下方法:
方法1:将用户ID直接从Mobile App传递到API服务器
- 通过OAuth在移动应用中登录用户(使用类似AppAuth之类的库)
- 在移动应用中存储从OAuth检索到的用户ID
- 移动应用程序将用户ID发送到API服务器,以便他们可以将正确的资源检索回移动应用程序
但是,此方法似乎不安全,由于攻击者在传递给API时可以伪造其用户ID 。
方法2:将OAuth访问令牌传递给API服务器,让API服务器再次调用OAuth服务器
- 通过OAuth在移动应用中登录用户(使用类似AppAuth之类的库)
- 存储从OAuth检索的access_token
- 移动应用程序将access_token发送到API服务器
- API服务器将access_token传递给OAuth服务器
- OAuth服务器将用户信息返回给API服务器
- 现在,API服务器具有用户信息,并且可以将正确的资源返回给移动应用程序
方法2似乎更安全,但是我似乎看不到任何人建议的这种基础结构。此方法似乎也占用大量资源,因为API服务器需要在每次调用API时都调用OAuth服务器。
所以我的问题是:
- 在使用OAuth登录的移动应用上访问API服务器的最佳做法是什么?
- 如果有最佳实践,是否有那些资源的链接?
谢谢!