【发布时间】:2016-08-28 14:02:48
【问题描述】:
我正在使用 jwt:auth 和 laravel 5.2 以安全的方式对 CSRF 攻击进行身份验证。
你可以在这里找到如何做>>http://blog.nedex.io/create-an-api-server-for-mobile-apps-using-laravel-5-1/
我在 VerifyCsrfToken.php 中间件中编辑了 except 数组并添加了 api/login 和 api/signup,所以我可以跳过这两个操作的 jwt 令牌,因为当我尝试登录或注册时,我仍然没有密钥,但是。
Route::group(['prefix' => 'api'], function() {
Route::post('login', 'Api\AuthController@login');
Route::post('signup', 'Api\UsersController@signup');
Route::group(['middleware' => ['jwt.auth', 'jwt.refresh']], function() {
Route::post('logout', 'Api\AuthController@logout');
Route::get('test', function(){
return response()->json(['foo'=>'bar']);
});
Route::get('hospitals', 'Api\EmergenciesController@getHospitals');
Route::get('emergencyDetails/{id}', 'Api\EmergenciesController@getEmergencyDetails');
Route::get('profile/{id}', 'Api\UsersController@get_profile');
Route::post('submit_profile/{id}', 'Api\UsersController@submit_profile_data');
Route::post('update_property/{id}/{property}/{value}', 'Api\UsersController@update_property');
Route::post('pregnant/{id}', 'Api\UsersController@update_is_pregnant');
});
});
当我使用 ?token= 发送 GET 请求时,它工作得很好 但是当我尝试发送 POST 请求时它给了我一个 TokenMismatchException 虽然我正在发送令牌。
在此处查看屏幕截图>>https://www.dropbox.com/sh/a901epayh1liapd/AABCwxxBN4pSG735SxQlC2jha?dl=0
为什么 POST 请求失败?请帮忙!
【问题讨论】:
-
您如何通过 POST 发送令牌?你能把代码贴出来吗..
-
您能否发布 VerifyCsrfToken.php,因为这是首先引发错误的地方?
-
class VerifyCsrfToken extends BaseVerifier { /** * 应该从 CSRF 验证中排除的 URI。 * * @var 数组 */ protected $except = [ 'api/login', 'api/signup', ]; }
-
@Manojsalvi 我正在通过 Postman 浏览器插件发送令牌,dropbox.com/sh/a901epayh1liapd/AABCwxxBN4pSG735SxQlC2jha?dl=0
标签: laravel authentication jwt