【微信小程序】安装DingoApi开发小程序api
1.安装
composer require dingo/api
2.发布配置:
php artisan vendor:publish
选择DingoApi发布.
3.向.env文件添加配置
(1)项目环境
API_STANDARDS_TREE = prs
x:本地开发私有环境
prs:未对外公布,单页应用
vnd:开放所有用户
(2)项目简称
API_SUBTYPE=test
(3)前缀
API_PREFIX=api
(4)api版本
API_VERSION=v1
(5)测试环境,显示错误信息
API_DEBUG=true
3.接管路由
$api = app('Dingo\Api\Routing\Router');
/*
* 1.确定namespace.
* 2.启动数组序列化器
* 3.开启模型绑定
*/
$api->version('v1',[
'namespace' => 'App\Http\Controllers\Api',
'middleware' => ['serializer:array','bindings']
],function ($api){
/*
* 游客可以访问的接口
* 1.限制接口访问次数
*
*/
$api->group([
'middleware' => 'api.throttle',
'limit' => config('api.rate_limits.access.limit'),
'expires' => config('api.rate_limits.access.expires'),
],function($api){
//这里写不需要验证的接口
$api->(……)->name(……);
。
。
。
/*
* 需要验证的接口
* 1.授权才能访问
*/
$api->group([
'middleware' => 'api.auth',
],function ($api){
//这里写需要验证的接口
$api->(……)->name(……);
。
。
。 });
});
});
4.安装序列化器选择器
composer require liyu/dingo-serializer-switch
5.创建数据转换器
<?php namespace App\Transformers; use App\Models\Model;
use League\Fractal\TransformerAbstract; class ModelTransformer extends TransformerAbstract
{
public function transform(Model $model)
{
return [
'id' => $model->id,
。
。
。
。 ];
}
}
6.api鉴权
composer require tymon/jwt-auth:^1.0.0
生成jwt密匙:
php artisan jwt:secret
将config/auth.php的api guard的driver换成jwt:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
], 'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
修改dingoapi的设置配合jwt实现api鉴权:
config/api。php
'auth' => [
'jwt' => 'Dingo\Api\Auth\Provider\JWT',
],
在app/Models/User。php中添加:
<?php namespace App\Models; use Auth;
use Spatie\Permission\Traits\HasRoles;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Auth\MustVerifyEmail as MustVerifyEmailTrait;
use Illuminate\Contracts\Auth\MustVerifyEmail as MustVerifyEmailContract; class User extends Authenticatable implements MustVerifyEmailContract, JWTSubject .
.
.
public function getJWTIdentifier()
{
return $this->getKey();
} public function getJWTCustomClaims()
{
return [];
}
}
7.授权,获取token:
1.Auth::guard('api')->attempt($credentials))
Auth::guard('api')->factory()->getTTL() * 60
2.Auth::guard('api')->fromUser($user);
Auth::guard('api')->factory()->getTTL() * 60
8.刷新删除token
1.$token = Auth::guard('api')->refresh();
2.Auth::guard('api')->logout();
9.访问需要授权的接口
在请求的header中添加:
Authorization: Bearer {token}
10.开发时用arisan 获取token
1.创建command
2.
public function handle()
{
$userId = $this->ask('输入用户 id'); $user = User::find($userId); if (!$user) {
return $this->error('用户不存在');
} // 过期时间
$ttl = 365*24*60;
$this->info(\Auth::guard('api')->setTTL($ttl)->fromUser($user));
}
}
【微信小程序】安装DingoApi开发小程序api的更多相关文章
- ISS_1建站使其能够用ipad浏览器下载安装x-code开发的程序
一:第一种方法 1:把ipa上传到一个https类型的网站比如:https://worktile.com 2:更改plist中urrl <?xml version="1.0" ...
- nw.js开发第一个程序(html开发桌面程序exe)
一.环境配置 windows系统 cnpm install node 下载nw.js https://github.com/nwjs/nw.js 找到download下载合适的版本 二.开发 项目目录 ...
- 安装Glass Box代理程序
安装玻璃盒代理程序 目前版本的玻璃代理程序主要支持主流 Java EE 应用程序服务器(如 JBoss,Tomcat,WebLogic 和 WebSphere).玻璃盒代理程序可以自动化安装,但考虑到 ...
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
- 基于微信小程序的系统开发准备工作
腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传统的APP来说,微信小程序确实能够 ...
- WordPress版微信小程序安装使用说明
昨天在群里,有刚刚使用WordPress版微信小程序朋友,在问安装过程中的问题,这些问题是经常被问到,这至少说明两个问题: 1.我开发的程序安装和使用不够简易,无法通过简单的配置就可以使用,特别是如果 ...
- 微信正式开放内测“小程序”,不开发APP的日子真的来了?
关注,QQ群,微信应用号社区 511389428 微信正式开放内测“小程序”,不开发APP的日子真的来了? 明星公司 缪定纯 • 2016-09-22 09:05 讨论了很久的微信应用号终于来了,不过 ...
- 微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击
微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击 摘要: 小程序和公众号最大的区别有如下四点:1.小程序没有粉丝,开发者在后台能看到的只能是累计用户访问数以及实时统计 ...
- (转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
随机推荐
- maven仓库之第一篇
maven jar仓库 :存放maven项目使用的jar包. 中央仓库,存放99%免费开源项目jar包,apache公司负责维护的,以T为单位的存储. 例如 : struts2-core-2.3.24 ...
- 三大免费开源的php语言cms系统 用好它们让你一天建好一个网站
php语言只所以在web开发领域占据半壁江山,是因为它有太多的生态,成熟的框架体系,广泛的开源cms系统.建设网站的时候,都想提升开发效率,效率就是成本,如果你用原生php语言开发一个项目,既要设计数 ...
- Zimbra
第一步:利用XXE读取配置文件 这里利用了CVE-2019-9670漏洞来读取配置文件,你需要在自己的VPS服务器上放置一个dtd文件,并使该文件能够通过HTTP访问.为了演示,我在GitHub上创建 ...
- Flutter 基础控件
内容: Button Image.Icon Switch.Checkbox TextField Form 1.Button RaisedButton 漂浮按钮 FlatButton 扁平按钮 Outl ...
- Create an op on tensorflow; 在tensorflow 1.7/2.0 中创建一个 Op操作
最近项目,需要创建一个 tensorflow 的一个自定义操作,用来加速tensorflow的处理效果:下面对创建过程中,遇到的问题和资源进行简要记录,进行备忘: OP 创建 参考链接: https: ...
- git 配置本地用户名称 和 邮件名称
很多次配置git用户名和邮箱了,总是会忘记,然后在网络上搜索,今天进行记录下来,防止遗忘: # 查看用户名和邮箱地址git config user.name git config user.email ...
- linux 安装程序的方式
linux 安装程序的方式 通用二进制格式(绿色软件,打开即用) 软件包管理器(rpm) 软件包管理器的前端工具(yum) 源代码编译
- 元数据MetaData(五)
JDBC的元数据接口有: DatabaseMetaData数据库级 ResultSetMetaData结果集级 一.DatabaseMetaData 在对数据源进行连接以后,得到一个Connectio ...
- WPF 精修篇 数据触发器
原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...
- windows10安装最新的redis
官方给的redis的windows版本最新为3,而linux版本是5 这里通过win10子系统安装,win10子系统的配置见另一篇博客https://www.cnblogs.com/MC-Curry/ ...