如何实现OAuth 2.0,比如基于令牌的认证,用于从移动和javascript web应用程序访问的rest API

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

本文关键字:移动 用于 web rest API 访问 应用程序 认证 javascript OAuth 实现      更新时间:2023-09-26

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

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


  1. 访问令牌每1小时左右过期一次。最终用户再次被要求输入用户名和密码。这是不可接受的。
  2. 如果我们延长令牌的使用时间,那么如果有人得到令牌的处理,他们可以在更长的时间内访问Rest API。由于web应用程序是javascript应用程序,它很容易在平面文本中获得。

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

上述机制的改进是什么,使其适用于javascript和android应用程序开发的独立web应用程序?

访问令牌确实是短期的。为了长时间保持授权,OAuth2有一个叫做"刷新令牌"的东西。

如果提供者支持它(Google和Facebook都支持),OAuth2消费者可以在初始流期间请求除访问令牌之外的刷新令牌(我相信Google称之为"离线访问")。访问令牌通常使用,但当它过期时,消费者可以使用其凭据和刷新令牌请求新的访问令牌。

查看Google文档获取更多信息:https://developers.google.com/accounts/docs/OAuth2WebServer#offline.

相关文章: