laravel 5.4 api.php,Laravel5.4 Api认证Demo

Laravel5.4 Api认证Demo

为大家提供一个简单的laravel api接口认证Demo路由 routes/api.phpRoute::group(['namespace' => 'Api'], function() {

//测试

Route::get('index', 'ApiBaseController@index');

//获取的token

Route::get('get-token', 'ApiBaseController@getToken');

});

2.定义配置文件 config下新建token.php

3.认证类<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

class ApiBaseController extends Controller

{

//认证的key

private static $key='mytoken';

//过期时间秒为单位

public static $Cache = '7200';

public function __construct( Request $request )

{

if( $request->path() != 'api/get-token')

{

$token = trim($request->input('token'));

if( config('token.token') != $token )

{

$obj = new \stdClass();

$obj->state = 0;

$obj->data = '';

$obj->msg = 'token不正确';

echo json_encode($obj);

exit();

}

if( config('token.expiration') 

{

$obj = new \stdClass();

$obj->state = 0;

$obj->data = '';

$obj->msg = 'token失效';

echo json_encode($obj);

exit();

}

}

}

/**

* @param Request $request

* 获取token

*/

public function getToken( Request $request )

{

$key = trim($request->input('key'));

if( $key == static::$key )

{

if( config('token.expiration') > time() )

{

$obj  = array();

$obj->state = 1;

$obj->data = config('token.token');

$obj->msg = 'Token为'.config('token.token');

return json_encode($obj);;

}

$token = str_random(25);

$time = time()+static::$Cache;

$str = "<?php  \n return [\n'token' => '".$token."', \n'expiration'=>'".$time."' \n];";

file_put_contents(config_path().'/token.php',$str);

$obj = new \stdClass();

$obj->state = 1;

$obj->data = $token;

$obj->msg = '生成的Token为'.$token;

return json_encode($obj);

}else

{

$obj = new \stdClass();

$obj->state = 0;

$obj->data = '';

$obj->msg = 'key不正确';

return json_encode($obj);

}

}

public function index(  Request $request )

{

dd( date("Y-m-d H:i:s",config('token.expiration')) );

}

}

4.请求:

生成token http://127.0.0.1/api/get-token?key=你的key值

你也可以使用laraver的laravel/passport配置如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值