首页 > 解决方案 > 在 october cms 中使用 vdomah JWT 插件生成的令牌不被 Flutter 路由接受

问题描述

你好,我正在使用颤振,我用 october cms 构建了一个 api。我使用 vdomah 的插件进行 JWT 身份验证,我想我遵循了 README.md 但是当我尝试将令牌发送到 api 时,我认为不被接受,代码:

路线:

Route::post('storephoto', function (Work $Work, Request $request) {
    ...
    $Work->save();
})->middleware('Tymon\JWTAuth\Middleware\GetUserFromToken');

颤振的一面:

upload(String fileName) {
    http.post(AppUrl.baseURL + "/storephoto",
        headers: {
          'Authorization': 'Bearer $token'
        },
        body: {
      "name": workNameController.text,
      "images": fileName,
      "description": descriptionController.text
    }).then((result) {
      setStatus(result.statusCode == 200 ? result.body : errMessage);
      if(result.statusCode == 200) {
        Navigator.push(context,
            MaterialPageRoute(
                builder: (context) => MainScreen()));
      };
    }).catchError((error) {
      setStatus(error);
    });
}

我在这个函数中打印了令牌,它存在,但我在控制台中看不到错误。

我尝试创建一个 GET 路由,并且 api 似乎在浏览器中工作,消息:

{
    "error": "token_not_provided"
}

现在我认为生成的令牌没有签名或无法识别,我该怎么办?提前致谢。

标签: flutterauthenticationjwtoctobercms

解决方案


一旦我遇到同样的问题,不确定插件中是否存在问题,并且进行以下更改解决了它。

此文件中的 plugins/vdomah/jwtauth/Plugin.php 进行以下更改。

在此处输入图像描述

如果您有任何疑问,请发表评论。

你能像这样使用中间件吗

Route::group(['middleware' =>         
    ['\Tymon\JWTAuth\Middleware\GetUserFromToken']], function() {
    Route::post('storephoto', function (Request $request) {           
        //..code
    });
});

好像我喜欢这样它的工作


推荐阅读