如何实现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
我需要为我的REST API实现认证和授权机制。这是从移动应用程序和web应用程序访问的rest api。
我想实现的机制:
因此,根据我的理解,我使用基于密码的身份验证。移动应用程序或javascript web应用程序通过HTTPS post请求发送用户名和密码,以获得有限时间的访问令牌。
- 访问令牌每1小时左右过期一次。最终用户再次被要求输入用户名和密码。这是不可接受的。
- 如果我们延长令牌的使用时间,那么如果有人得到令牌的处理,他们可以在更长的时间内访问Rest API。由于web应用程序是javascript应用程序,它很容易在平面文本中获得。
所以我试图理解像facebook和twitter这样的应用程序是如何为他们的原生移动应用程序实现授权的。它们是否通过存储在本地存储器中来永远记住访问令牌?因此,如果一些恶意应用程序有root访问权限的安卓手机可以访问令牌。
上述机制的改进是什么,使其适用于javascript和android应用程序开发的独立web应用程序?
访问令牌确实是短期的。为了长时间保持授权,OAuth2有一个叫做"刷新令牌"的东西。
如果提供者支持它(Google和Facebook都支持),OAuth2消费者可以在初始流期间请求除访问令牌之外的刷新令牌(我相信Google称之为"离线访问")。访问令牌通常使用,但当它过期时,消费者可以使用其凭据和刷新令牌请求新的访问令牌。
查看Google文档获取更多信息:https://developers.google.com/accounts/docs/OAuth2WebServer#offline.
相关文章:
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 选择标记onchange不适用于移动设备
- css,用于在移动视图中将引导导航栏更改为accordian
- 用于文件移动到另一个文件夹的Javascript自动化
- jQuery 滚动到锚点适用于移动设备,但不适用于桌面
- window.location.href =“#find” 适用于移动设备,但不适用于 PC.在本地站点上正常(表达式
- 地理位置不适用于苹果移动网络应用程序功能
- 使用window.location.htm和匹配的URL数组(一个用于桌面,一个用于移动)将桌面网站重定向到移动
- 折叠导航按钮不适用于twitter引导程序设计的移动设备
- 谷歌翻译器javascript不适用于移动设备
- 响应式设计适用于桌面浏览器、移动模拟器(Safari和Mozilla Firefox),但不适用于真正的智能手机(And
- HTML下拉菜单's重定向(使用JS)不适用于移动设备,但在PC上运行良好
- Jquery.Load不适用于android浏览器,但适用于同一设备上的Firefox移动浏览器
- 用于移动上传文件的 JavaScript
- 用于加载动态 JSON 数据的 JQuery 移动事件
- 移动隐藏菜单适用于jsfiddle,但不适用于在线.任何解决方案都会有所帮助
- Sinch 视频通话不适用于移动设备上浏览器的更新版本
- jQuery 移动 css 和 js 不适用于使用 .load() 加载的内容
- Jquery方法选择,用于移动到下一个父子
- 移动菜单切换问题(onclick 仅适用于外部容器,不适用于按钮)