OAuth2 Demo PHP
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
/serverto 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_paramsdefine 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的更多相关文章
- Spring Security OAuth2 Demo
Spring Security OAuth2 Demo 项目使用的是MySql存储, 需要先创建以下表结构: CREATE SCHEMA IF NOT EXISTS `alan-oauth` DEFA ...
- Spring Security OAuth2 Demo —— 隐式授权模式(Implicit)
本文可以转载,但请注明出处https://www.cnblogs.com/hellxz/p/oauth2_impilit_pattern.html 写在前面 在文章OAuth 2.0 概念及授权流程梳 ...
- Spring Security OAuth2 Demo -- good
1. 添加依赖授权服务是基于Spring Security的,因此需要在项目中引入两个依赖: <dependency> <groupId>org.springframework ...
- Spring Security OAuth2 Demo —— 授权码模式
本文可以转载,但请注明出处https://www.cnblogs.com/hellxz/p/oauth2_oauthcode_pattern.html 写在前边 在文章OAuth 2.0 概念及授权流 ...
- Spring Security OAuth2 Demo —— 密码模式(Password)
前情回顾 前几节分享了OAuth2的流程与授权码模式和隐式授权模式两种的Demo,我们了解到授权码模式是OAuth2四种模式流程最复杂模式,复杂程度由大至小:授权码模式 > 隐式授权模式 > ...
- Spring Security OAuth2 Demo —— 客户端模式(ClientCredentials)
前情回顾 前几节分享了OAuth2的流程与其它三种授权模式,这几种授权模式复杂程度由大至小:授权码模式 > 隐式授权模式 > 密码模式 > 客户端模式 本文要讲的是最后一种也是最简单 ...
- 使用微服务架构思想,设计部署OAuth2.0授权认证框架
1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...
- 朱晔和你聊Spring系列S1E10:强大且复杂的Spring Security(含OAuth2三角色+三模式完整例子)
Spring Security功能多,组件抽象程度高,配置方式多样,导致了Spring Security强大且复杂的特性.Spring Security的学习成本几乎是Spring家族中最高的,Spr ...
- API代理网关和OAuth2.0授权认证框架
API代理网关和OAuth2.0授权认证框架 https://www.cnblogs.com/bluedoctor/p/8967951.html 1,授权认证与微服务架构 1.1,由不同团队合作引发的 ...
随机推荐
- RC4加密算法的原理及实现
RC4于1987年提出,和DES算法一样.是一种对称加密算法,也就是说使用的密钥为单钥(或称为私钥). 但不同于DES的是.RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每个字节.解密 ...
- [EF]数据上下文该如何实例化?
摘要 之前使用过一段Nhibernate,最近在尝试EF做项目,但对DbContext的实例化,有点困惑,发现和Nhibernate有不同.这里将查找的例子,在这里列举一下. 资料 在EntityFr ...
- 交叉编译Python-3.6.0到aarch64/aarch32 —— 支持sqlite3
参考 https://datko.net/2013/05/10/cross-compiling-python-3-3-1-for-beaglebone-arm-angstrom/ 平台 主机: ubu ...
- Android:Attribute is missing the Android namespace prefix
今天编写XML文件时,出现了Attribute is missing the Android namespace prefix的错误,开始一直找没找出原因,后来仔细一看原来只是一个很简单的单词书写错误 ...
- SpringMVC和Springboot的区别
转自站在浪潮之巅的原文SpringMVC和Springboot的区别(网摘) spring boot 我理解就是把 spring spring mvc spring data jpa 等等的一些常用的 ...
- mqtt Qos
mqtt Qos QoS Level 0:至多一次意思就是给你转发一次就得了,不管你有没收到.这个我理解是如果接收方离线了就不能收到消息,可以用在音视频聊天请求,因为当接收方离线后就不用收到请求了,就 ...
- ios(包括6、7)应用程序引用系统通讯录的方法 [亲测可行]
由于ios系统对用户隐私的控制,第三方应用程序只能通过苹果官方接口调用系统通讯录,不能像android那样直接操作通讯录数据库. 一般地,使用系统自带通讯录的方法有两种,一种是直接将整个通讯录 ...
- Python index()方法
Python index()方法 Python 字符串 描述 Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否 ...
- Linux netstat命令具体解释
简单介绍 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表.接口状态 (Interface Statistics).masquerade 连接,多播成员 (Multicast Memb ...
- 清除和新建WordPress数据库
由于在本地已经安装过一次wordpress.所以假设第二次安装的时候 localhost/wp-admin/install.php 会显示你已经安装过了.所以须要把MySQL的数据库信息清除掉,或者另 ...