[专题] 我所知道的关于 OAuth 2 的资料

OAuth 2 最近有用到,感觉新手从理解到在项目里面熟练实现(根据不同的场景 or 设备实现不同的 grant 方案),还是需要一个过程的。整理一下自己的一些学习资料;

入门

阮一峰老师的博客是一定要去看看的,他写的这篇关于 OAuth 2.0 应该是你必读的第一篇文章,文章的评论也很不错;

http://www.ruanyifeng.com/blog/2014/05/oau...

教程

这是几篇国外不错的教程,通读一下应该可以对 OAuth 2.0 有个系统的认知和了解;

http://tutorials.jenkov.com/oauth2/overvie...

http://code.tutsplus.com/articles/oauth-20...

如果你不喜欢阅读大量英文,但是听力还不错,可以去看看 knpUniversity 的 video 教程:

https://knpuniversity.com/screencast/oauth

一些题外话,关于 OAuth 1.0 和 OAuth 2.0 的一些争论,暂时不去讨论这个问题,你可以把它当做故事去看:

译言网 OAuth 2.0:通往地狱之路: http://article.yeeyan.org/view/50978/30753...
Sackoverflow:http://stackoverflow.com/questions/7561631...

动手实践

ok,现在开始需要你动手操作了,这个项目让你把所有细节动手实践一遍,还是蛮有用的,包括指导你去使用不同的 storage 方案,以及在不同的 PHP Framework 以及已有项目中里面实现 OAuth2.0:强烈推荐动手实践

教程:http://bshaffer.github.io/oauth2-server-ph...

扩展阅读

如果你有大量的空闲时间,去快速浏览一下 RFC 文档呗~~

Laravel && OAuth 2

毕竟这是 Laravel 社区,推荐一些 Laravel 框架的 OAuth 2.0 的包还是需要的:

PHP OAuth 2.0 Server http://oauth2.thephpleague.com/

lucadegasperi/oauth2-server-laravel https://github.com/lucadegasperi/oauth2-se...

如果你正在写 API Server,Dingo/api 或许是个不错的选择,与 lucadegasperi/oauth2-server-laravel 快速搭配使用;

Laravel 5.3 : Passport

在 Laravel 中,可以非常简单得实现基于传统表单的登陆以及授权,但是如何满足 API 场景下的授权需求呢?在 API 场景中通常通过令牌来实现用户授权,而不是通过维护请求之间的 Session 状态。现在可以使用 Passport 在 Laravel 项目中轻而易举地实现 API 授权过程,通过 Passport 可以在几分钟之内为你的 Laravel 应用程序添加完整的 OAuth2 服务端实现。 Passport 基于 League OAuth2 server 实现,该项目的维护人是 Alex Bilbie

Updated At 2016/09/17

Remote. Open. Engineer.
本帖已被设为精华帖!
附言 1  ·  8年前

附加优质资源链接:

帮你深入理解 OAuth 2.0 http://blog.csdn.net/seccloud/article/details/8192707

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 9
Summer

http://oauth2.thephpleague.com/ 这个文档写的很清晰.

9年前 评论
Summer

@hutushen222

有三种场景:

  1. Require Client Token Section;
  2. Require A Access Token, Support Both Client & Password Token;
  3. Require Password Grant Token Section;

对应下面的三个截图:

file

file

file

8年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!