繁体   English   中英

如何为从移动和javascript Web应用程序访问的rest API实现OAuth 2.0,如基于令牌的身份验证

[英]How to implement OAuth 2.0 like token based authentication for rest API which is accessed from mobile and javascript web applications

我需要为我的REST API实现身份验证和授权机制。 这是从移动应用程序和Web应用程序访问的rest api。

机制我想实现:
所以根据我的理解,我使用的是基于密码的身份验证。 移动应用程序或javascript Web应用程序通过HTTPS post请求发送用户名和密码,以获取有限时间的访问令牌。

问题

  1. 因为访问令牌每1小时左右到期。 再次请求最终用户输入用户名和密码。 这是不可接受的。
  2. 如果我们将令牌的时间延长一段时间,那么如果有人处理令牌,他们可以访问Rest API更长时间。 由于Web应用程序是javascript应用程序,因此可以在计划文本中轻松使用。

所以我试图理解像facebook和twitter这样的应用程序如何为其原生移动应用程序实现授权。 他们是否通过存储在本地存储中永远记住访问令牌。 这样如果一些恶意应用程序有root权限,那么android手机就可以访问令牌。

对于在javascript和android应用程序中开发的独立Web应用程序,它对上述机制有什么改进?

访问令牌确实意味着短暂的生命。 为了保持很长一段时间的授权,OAuth2有一个叫做“刷新令牌”的东西。

如果提供商支持它(以及Google和Facebook都支持),OAuth2消费者可以在初始流程期间除了访问令牌之外还请求刷新令牌(Google称之为“离线访问”,我相信)。 访问令牌通常被使用,但是当它到期时,消费者可以使用其凭证和刷新令牌请求新的访问令牌。

有关详细信息,请参阅Google的文档: https//developers.google.com/accounts/docs/OAuth2WebServer#offline

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM