【问题标题】:The generated token with vdomah JWT plugin in october cms is not accepted by the route with flutter在 october cms 中使用 vdomah JWT 插件生成的令牌不被 Flutter 路由接受
【发布时间】:2021-09-03 06:48:48
【问题描述】:

你好,我正在使用颤振,我用 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"
}

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

【问题讨论】:

    标签: flutter authentication jwt octobercms


    【解决方案1】:

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

    plugins/vdomah/jwtauth/Plugin.php 在此文件中做以下更改。

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

    你能用这样的中间件吗

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

    好像我确实喜欢它的工作方式

    【讨论】:

    • 嗨,谢谢你的回复,它不起作用也许我明白了,我错了 readme.md 的最后一部分,你能解释一下我必须把方法 getAuthApiSignupAttributes 放在哪里吗?
    • 我认为只有当您需要自定义数据时才需要它,它是可选的,您可以像在代码中那样添加中间件吗?它应该像我一样工作
    猜你喜欢
    • 2021-06-16
    • 2015-03-05
    • 2018-02-01
    • 2018-08-29
    • 2021-07-29
    • 1970-01-01
    • 2019-03-21
    • 2017-04-06
    • 2020-09-28
    相关资源
    最近更新 更多