lanos/api-framework

基于 Slim 构建,利用 Eloquent ORM 和 oAuth 2.0 的 RESTful 服务框架

安装: 33

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 0

类型:项目

1.0.1 2019-02-06 19:57 UTC

This package is auto-updated.

Last update: 2024-09-07 16:08:50 UTC


README

计划构建 SaaS 软件包?需要快速部署您想法中的安全 API。

无需再寻找!

该框架旨在快速轻松地部署。并且已被 NuLead 和 Lanos 项目的所有项目所使用。

包含哪些内容?

  • Eloquent 对象关系映射
  • oAuth 2.0,密码和 client_credentials 流
  • 易于依赖注入
  • 易于 Auth Guard / 中间件配置
  • 资源所有者中间件保护
  • 预配置 CORS。

即将推出

An azure container image for this framework!

安装

php composer.phar create-project lanos/api-framework [my-app-name]

[my-app-name] 替换为您新应用的期望目录名称。您需要

  • 将您的虚拟主机文档根指向新应用的 public/ 目录。
  • 确保 logs/ 可被网络写入。

数据库创建

您需要创建一个数据库,确保应用有访问权限,并在 src/settings.php 中进行配置。

然后在数据库中创建以下模式。

CREATE TABLE IF NOT EXISTS `oauth_access_tokens` (
  `access_token` varchar(40) NOT NULL,
  `client_id` varchar(80) NOT NULL,
  `user_id` varchar(80) DEFAULT NULL,
  `expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `scope` varchar(4000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
CREATE TABLE IF NOT EXISTS `oauth_authorization_codes` (
  `authorization_code` varchar(40) NOT NULL,
  `client_id` varchar(80) NOT NULL,
  `user_id` varchar(80) DEFAULT NULL,
  `redirect_uri` varchar(2000) DEFAULT NULL,
  `expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `scope` varchar(4000) DEFAULT NULL,
  `id_token` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
CREATE TABLE IF NOT EXISTS `oauth_clients` (
  `client_id` varchar(80) NOT NULL,
  `client_secret` varchar(80) DEFAULT NULL,
  `redirect_uri` varchar(2000) DEFAULT NULL,
  `grant_types` varchar(80) DEFAULT NULL,
  `scope` varchar(4000) DEFAULT NULL,
  `user_id` varchar(80) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
INSERT INTO `oauth_clients` (`client_id`, `client_secret`, `redirect_uri`, `grant_types`, `scope`, `user_id`) VALUES
('lanosTest', '098f6bcd4621d373cade4e832627b4f6', NULL, 'password client_credentials', 'user_read user_write', NULL);
     
CREATE TABLE IF NOT EXISTS `oauth_jwt` (
  `client_id` varchar(80) NOT NULL,
  `subject` varchar(80) DEFAULT NULL,
  `public_key` varchar(2000) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
CREATE TABLE IF NOT EXISTS `oauth_refresh_tokens` (
  `refresh_token` varchar(40) NOT NULL,
  `client_id` varchar(80) NOT NULL,
  `user_id` varchar(80) DEFAULT NULL,
  `expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `scope` varchar(4000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
CREATE TABLE IF NOT EXISTS `oauth_scopes` (
  `scope` varchar(80) NOT NULL,
  `is_default` tinyint(1) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
CREATE TABLE IF NOT EXISTS `oauth_users` (
  `username` varchar(80) NOT NULL DEFAULT '',
  `password` varchar(80) DEFAULT NULL,
  `first_name` varchar(80) DEFAULT NULL,
  `last_name` varchar(80) DEFAULT NULL,
  `email` varchar(80) DEFAULT NULL,
  `email_verified` tinyint(1) DEFAULT NULL,
  `scope` varchar(4000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
INSERT INTO `oauth_users` (`username`, `password`, `first_name`, `last_name`, `email`, `email_verified`, `scope`) VALUES
('test', '$2y$10$U3CMYLB/2xV3xI6lv3Kmfek.R.N.DD1GrFhv4PciknQ15Tcf889nu', 'robert', 'lane', 'test@test.com', 1, 'user_read user_write');
 
ALTER TABLE `oauth_access_tokens`
ADD PRIMARY KEY (`access_token`);
  
ALTER TABLE `oauth_authorization_codes`
ADD PRIMARY KEY (`authorization_code`);
  
ALTER TABLE `oauth_clients`
ADD PRIMARY KEY (`client_id`);
  
ALTER TABLE `oauth_refresh_tokens`
ADD PRIMARY KEY (`refresh_token`);
  
ALTER TABLE `oauth_scopes`
ADD PRIMARY KEY (`scope`);
    
ALTER TABLE `oauth_users`
ADD PRIMARY KEY (`username`);

运行应用程序

要运行开发中的应用程序,您可以运行以下命令

cd [my-app-name]
php composer.phar start

在应用目录中运行此命令以运行测试套件

php composer.phar test

就是这样!现在去构建一些酷的东西吧。