OAuth2 Demo PHP

此应用程序的目的是演示OAuth2.0客户端和服务器之间的工作流。
如果这是你第一次来这里,试图尝试的现场演示让OAuth2.0流更好的感觉。

experimenting with the live demo

这个图书馆是oauth2服务器运行PHP库。

安装

使用 Composer 安装这个应用程序:

$ git clone git://github.com/bshaffer/oauth2-demo-php.git
$ cd oauth2-demo-php
$ curl -s http://getcomposer.org/installer | php
$ ./composer.phar install

WebHost Configuration

高手写的配置

配置一个Web服务器

Silex requires you to configure your web server to run it.

Be sure to run the command $ chmod -R 777 data/ in the project root so that the web server can create the sqlite file.

使用PHP的内置Web服务器

您可以使用php的 内置的web服务器 然而,您将需要旋转两个实例,指定其中的一个 数据/ parameters.json 为了防止服务器锁定。 客户端向服务器发出请求,因为PHP的内置web服务器是单线程的,这将导致死锁。

$ cd oauth2-demo-php
$ cp data/parameters.json.dist data/parameters.json
$ sed -i '' 's?"grant"?"http://localhost:8081/lockdin/token"?g' data/parameters.json
$ sed -i '' 's?"access"?"http://localhost:8081/lockdin/resource"?g' data/parameters.json

现在你要做的就是自旋向上两个单独的web服务器web目录

$ cd web
$ php -S localhost:8080 & php -S localhost:8081

浏览到 http://localhost:8080 在您的浏览器中,你都准备好了!

这个程序是做什么的? ?

这个应用程序模拟之间的交互OAuth2客户机(演示应用程序)和OAuth2服务器(锁)。 首先,访问演示应用程序的主页:

点击 授权  Authorize 将你锁会,模拟数据提供商(如twitter、facebook等)。 锁会在假定您已经签署,并要求如果你想演示应用程序授予访问您的信息:

一旦你点击 是的,我批准这个请求 ,您将被重定向回和一个演示应用程序 授权代码 ,这 然后客户端交流 the client then exchanges对于一个访问令牌。 演示应用程序然后让另一个调用锁会在api和使用访问令牌代表你检索数据。

如果成功,您的数据从锁在最后一页将显示:

OAuth2客户端可以用来测试 任何 OAuth2.0服务器,可以配置为使用配置文件定义 下面

OAuth2服务器

OAuth2服务器 创建(见 设置 方法),然后使用 控制器类以下哪一个端点实现:

  • /授权 authorize——授予演示应用程序一个端点 授权代码
  • /令牌 token——授予演示应用程序一个端点 access_token 当提供上述授权代码
  • /资源 resource——端点赠款演示应用程序访问受保护的资源(在这种情况下,你的朋友)当提供上面的访问令牌

这三个OAuth2服务器的主要功能(授权用户,授予用户令牌,并验证api调用)。 当你写OAuth2-compatible服务器,你的界面会是相似的。

注:以上url前缀 /服务器 名称空间的应用程序。

Note: the above urls are prefixed with /server to namespace the application.  注:以上url前缀 /服务器 名称空间的应用程序。

Test Your Own OAuth2 Server!

测试自己的OAuth2服务器!

您可以测试这个应用程序轻松地对自己的OAuth应用程序。 复制的 parameters.json.dist 文件 parameters.json :

$ cd /path/to/oauth2-demo-php
$ cp data/parameters.json.dist data/parameters.json

打开参数。 json文件,注意默认配置:

{
"client_id": "demoapp",
"client_secret": "demopass",
"token_route": "grant",
"authorize_route": "authorize",
"resource_route": "access",
"resource_method": "GET",
"resource_params": {},
"curl_options": {}
}

这是默认的配置 就锁在 OAuth2服务器。 对自己的测试,改变这些参数以适应api服务器你想测试:

{
"client_id": "OAuth Demo Application",
"client_secret": "a3b4b74330724a927bec",
"token_route": "https://api.myapp.com/token",
"authorize_route": "https://myapp.com/authorize",
"resource_route": "https://api.myapp.com/profile",
"resource_method": "POST",
"resource_params": { "debug": true },
"curl_options": { "http_port": 443, "verifyssl": false }
}

上面的例子使用了一个新客户对一个虚构的oauth身份验证服务器 myapp.com 。 这是测试您的应用程序在生产时非常有用

Note: The curl options are set to ignore an SSL certificate, and the resource_params define a fictional debug parameter. These are not required for your APIs, but is meant as an example what can be done with the configuration

注:卷曲的选项设置忽略SSL证书,和resource_params定义一个虚构的调试参数。这些不是您的API所必需的,但也可以作为配置的一个例子。

###Test多环境测试

此外,您可以使用 parameters.json 文件创建多个环境,和它们之间的切换:

{
"LockdIn": {
"client_id": "demoapp",
"client_secret": "demopass",
"token_route": "grant",
"authorize_route": "authorize",
"resource_route": "access",
"resource_method": "GET",
"resource_params": {},
"curl_options": {}
},
"My App": {
"client_id": "OAuth Demo Application",
"client_secret": "a3b4b74330724a927bec",
"token_route": "https://api.myapp.com/token",
"authorize_route": "https://myapp.com/authorize",
"resource_route": "https://api.myapp.com/profile",
"resource_method": "POST",
"resource_params": { "debug": true },
"curl_options": { "http_port": 443, "verifyssl": false }
}
}

这将在顶部,这将允许你切换环境和测试多个OAuth服务器提供一个下拉

Contact

Please contact Brent Shaffer (77811970<at> qq<dot> com) for more information

OAuth2 Demo PHP的更多相关文章

  1. Spring Security OAuth2 Demo

    Spring Security OAuth2 Demo 项目使用的是MySql存储, 需要先创建以下表结构: CREATE SCHEMA IF NOT EXISTS `alan-oauth` DEFA ...

  2. Spring Security OAuth2 Demo —— 隐式授权模式(Implicit)

    本文可以转载,但请注明出处https://www.cnblogs.com/hellxz/p/oauth2_impilit_pattern.html 写在前面 在文章OAuth 2.0 概念及授权流程梳 ...

  3. Spring Security OAuth2 Demo -- good

    1. 添加依赖授权服务是基于Spring Security的,因此需要在项目中引入两个依赖: <dependency> <groupId>org.springframework ...

  4. Spring Security OAuth2 Demo —— 授权码模式

    本文可以转载,但请注明出处https://www.cnblogs.com/hellxz/p/oauth2_oauthcode_pattern.html 写在前边 在文章OAuth 2.0 概念及授权流 ...

  5. Spring Security OAuth2 Demo —— 密码模式(Password)

    前情回顾 前几节分享了OAuth2的流程与授权码模式和隐式授权模式两种的Demo,我们了解到授权码模式是OAuth2四种模式流程最复杂模式,复杂程度由大至小:授权码模式 > 隐式授权模式 > ...

  6. Spring Security OAuth2 Demo —— 客户端模式(ClientCredentials)

    前情回顾 前几节分享了OAuth2的流程与其它三种授权模式,这几种授权模式复杂程度由大至小:授权码模式 > 隐式授权模式 > 密码模式 > 客户端模式 本文要讲的是最后一种也是最简单 ...

  7. 使用微服务架构思想,设计部署OAuth2.0授权认证框架

    1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...

  8. 朱晔和你聊Spring系列S1E10:强大且复杂的Spring Security(含OAuth2三角色+三模式完整例子)

    Spring Security功能多,组件抽象程度高,配置方式多样,导致了Spring Security强大且复杂的特性.Spring Security的学习成本几乎是Spring家族中最高的,Spr ...

  9. API代理网关和OAuth2.0授权认证框架

    API代理网关和OAuth2.0授权认证框架 https://www.cnblogs.com/bluedoctor/p/8967951.html 1,授权认证与微服务架构 1.1,由不同团队合作引发的 ...

随机推荐

  1. DMA/TIM capture

    This is a more free standing example measuring the LSI (TIM5_CH4 internally) and demonstrating DMA/T ...

  2. Data transfer from GPIO port to RAM buffer using DMA upon receiving a trigger signal on the timer capture input channel.

    Data transfer from GPIO port to RAM buffer using DMA upon receiving a trigger signal on the timer ca ...

  3. 在ASP.NET Web API中使用OData的Action和Function

    本篇体验OData的Action和Function功能.上下文信息参考"ASP.NET Web API基于OData的增删改查,以及处理实体间关系".在本文之前,我存在的疑惑包括: ...

  4. 对ORM的支持 之 8.4 集成JPA ——跟我学spring3

    8.4  集成JPA JPA全称为Java持久性API(Java Persistence API),JPA是Java EE 5标准之一,是一个ORM规范,由厂商来实现该规范,目前有Hibernate. ...

  5. ArcGIS Pro 中的布局

    ArcGIS Pro 中的布局 页面布局(通常简称为布局)是在虚拟页面上组织的地图元素的集合,旨在用于地图打印.常见的地图元素包括一个或多个地图框(每个地图框都含有一组有序的地图图层).比例尺.指北针 ...

  6. Netty4.0学习笔记系列之四:混合使用coder和handler

    Handler如何使用在前面的例子中已经有了示范,那么同样是扩展自ChannelHandler的Encoder和Decoder,与Handler混合后又是如何使用的?本文将通过一个实际的小例子来展示它 ...

  7. WordPress主题开发:开启文章缩略图功能

    安装wordpress后,默认的主题里编辑文章都会看见这个缩略图功能,那么我们自己开发的新主题怎么有这个功能呢? 目录: 一.开启缩略功能 二.设置缩略图大小 三.编辑文章,上传缩略图 四.调用缩略图 ...

  8. python测试开发django-36.一对一(OneToOneField)关系查询

    前言 前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示.本篇继续学习一对一(OneToOneField)关系的查询. 上一篇list_d ...

  9. python测试开发django-32.admin后台多对多关系ManyToManyField

    前言 一本书可以有多个作者,一个作者也可以写多本书,这种关系就是本篇要说的多对多关系. 这种场景在django里面数据库设计时候,需要用到ManyToManyField方法 多对多表设计 auther ...

  10. 获取AppStore上架后的应用版本号

    应用通过审核以后,由开发者设置应用上架,但何时能在appstore搜索到该应用,这个时间不等,有时候15分钟左右有时候2个多小时,以前就是隔一段时间打开网页然后刷新一下,或者搜索一下,查看版本号,操作 ...