OAuth2.0简介
关于它的介绍,给出以下两篇文章,相信看完,应该对它有一定程度的了解:
[1] 理解OAuth 2.0 —— 阮一峰
[2] 帮你深入理解OAuth2.0协议 —— seccloud
这里我主要阐述的是在laravel5中使用OAuth2.0。关于这个协议本身,以及运行流程希望大家看完以上两篇文章,理解后,再看我后面的内容!
Laravel5中安装OAuth2.0
OAuth2.0在官方中提供了 php的库 ,但是我们这里并不直接使用它官方提供的 Server Libraries ,我们使用github上 oauth2-server-laravel 这个库,它是经过改造,适合 Laravel5
的(Laravel4的安装就选对版本)。
使用教程
其实关于如何使用这个包,在 oauth2-server-laravel
提供的项目已经说得很清楚了,但是文档首先是英文的不便于只管理解,然后有几个小坑,这里用中文转述及补全一下:
安装
首先要用它,就需要先安好它。由于目前Laravel5的稳定版还没有发布,只提供了开发版(这里按照github上的文档安装会出错就是由于提供的版本还没有发布,需要使用开发版),所有安装如下:
"lucadegasperi/oauth2-server-laravel": "~4.1@dev",
"illuminate/html": "~5.0"
ps:这里安装 illuminate/html
是由于从Laravel5开始这个包就被移除了,然后我们项目中需要使用它,但是它并不是必须的,你可以选择不安装,不安装你在页面中将不能使用 {!! Form::hidden('client_id', $params['client_id']) !!}
这种操作。
配置
配置完全可以按照提供的文档来,步骤如下:
- 向
config/app.php
的providers
数组增加服务提供者
LucaDegasperi\OAuth2Server\Storage\FluentStorageServiceProvider::class,
LucaDegasperi\OAuth2Server\OAuth2ServerServiceProvider::class,
// view中Form表单使用,与OAuth无直接关系,只是为了布局方便
Illuminate\Html\HtmlServiceProvider::class,
- 向
config/app.php
的aliases
数组增加Facades
'Authorizer'=> LucaDegasperi\OAuth2Server\Facades\Authorizer::class,
// 与OAuth2.0认证无直接关系,只是为了方便布局使用
'Form' => Illuminate\Html\FormFacade::class,
'HTML' => Illuminate\Html\HtmlFacade::class,
- 修改
app/Http/Kernel.php