Yii2无效配置,在访问API时必须为cookieValidationKey配置一个秘密密钥错误 [英] Yii2 Invalid Configuration, cookieValidationKey must be configured with a secret key error when accessing the API

查看:836
本文介绍了Yii2无效配置,在访问API时必须为cookieValidationKey配置一个秘密密钥错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当尝试访问自己编写的API时都会遇到错误。

I am encountering an error whenever I am trying to access my self written API.


{
name: 无效的配置,
消息: yii\web\Request :: cookieValidationKey必须配置有密钥。,
代码:0,
type : yii\base\InvalidConfigException,
文件: F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Request。 php,
行:1669,
堆栈跟踪:[
#0 F:\xampp\htdocs\inventory-web\vendor\yiisoft \yii2\web\Request.php(1651):yii\web\Request-> loadCookies(),
#1 F:\xampp\htdocs\inventory-web\ \vendor\yiisoft\yii2\web\Request.php(1739):yii\web\Request-> getCookies(),
#2 F:\xampp\htdocs\ \库存网络\供应商\iisoft\yii2\web\Request.php(1721):yii\web\Request-> loadCsrfToken(),
#3 F:\ xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\User.php(279):yii \web\Request-> getCsrfToken(true),
#4 F:xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\User。 php(261):yii\web\User-> regenerateCsrfToken(),
#5 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\ web\User.php(299):yii\web\User-> login(Object(common\models\User)),
#6 F:\xampp\htdocs\库存网络供应商yiisoftyii2过滤器authHttpHeaderAuth.php(62):yiiweb用户-> loginByAccessToken('aa9d0c9e05a7f35 ...','yii\ \filters\\aut ...'),
#7 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\filters\auth MethodAuthMethod.php(59):yii\filters\auth\HttpHeaderAuth-> authenticate(Object(yii\web\User),Object(yii\web\Request),Object(yii\) web\Response)),
#8 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\ActionFilter.php(77):yii \filters\auth\AuthMethod-> beforeAction(Object(yii\base\InlineAction)),
#9 [内部函数]:yii\base\ \ActionFilter-> beforeFilter(Object(yii\base\ActionEvent)),
#10 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\ base\Component.php(627):call_user_func(Array,Object(yii\base\ActionEvent)),
#11 F:xampp\htdocs\inventory-web\vendor \yiisoft\yii2\base\Controller.php(276):yii\base\Component-> trigger('beforeAction',Object(yii\base\ActionEvent)),
#12 F:xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Controller.php(185):yii\base\Controller-> beforeAction(Object( yii\base\InlineAction)),
#13 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Controller.php(155 ):yii\web\Controller-> beforeAction(Object(yii\base\InlineAction)),
#14 F:\xampp\htdocs\inventory-web\vendor\ \yiisoft\yii2\base\Module.php(528):yii\base\Controller-> runAction('refdatajson',Array),
#15 F:\xampp\ htdocs\inventory-web\vendor\yiisoft\yii2\web\Applicat ion.php(103):yii\base\Module-> runAction('v1 / survey / refda ...',Array),
#16 F:\xampp\htdocs\库存-Web-供应商-yiisoft-yii2-base-Application.php(386):yii-web-Application-> handleRequest(Object(yii-web-Request)),
#17 F:xampp\htdocs\inventory-web\api\web\index.php(35):yii\base\Application-> run(),
#18 {main}
]
}

{ "name": "Invalid Configuration", "message": "yii\web\Request::cookieValidationKey must be configured with a secret key.", "code": 0, "type": "yii\base\InvalidConfigException", "file": "F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Request.php", "line": 1669, "stack-trace": [ "#0 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Request.php(1651): yii\web\Request->loadCookies()", "#1 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Request.php(1739): yii\web\Request->getCookies()", "#2 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Request.php(1721): yii\web\Request->loadCsrfToken()", "#3 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\User.php(279): yii\web\Request->getCsrfToken(true)", "#4 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\User.php(261): yii\web\User->regenerateCsrfToken()", "#5 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\User.php(299): yii\web\User->login(Object(common\models\User))", "#6 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\filters\auth\HttpHeaderAuth.php(62): yii\web\User->loginByAccessToken('aa9d0c9e05a7f35...', 'yii\\filters\\aut...')", "#7 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\filters\auth\AuthMethod.php(59): yii\filters\auth\HttpHeaderAuth->authenticate(Object(yii\web\User), Object(yii\web\Request), Object(yii\web\Response))", "#8 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\ActionFilter.php(77): yii\filters\auth\AuthMethod->beforeAction(Object(yii\base\InlineAction))", "#9 [internal function]: yii\base\ActionFilter->beforeFilter(Object(yii\base\ActionEvent))", "#10 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Component.php(627): call_user_func(Array, Object(yii\base\ActionEvent))", "#11 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Controller.php(276): yii\base\Component->trigger('beforeAction', Object(yii\base\ActionEvent))", "#12 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Controller.php(185): yii\base\Controller->beforeAction(Object(yii\base\InlineAction))", "#13 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Controller.php(155): yii\web\Controller->beforeAction(Object(yii\base\InlineAction))", "#14 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Module.php(528): yii\base\Controller->runAction('refdatajson', Array)", "#15 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\web\Application.php(103): yii\base\Module->runAction('v1/survey/refda...', Array)", "#16 F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))", "#17 F:\xampp\htdocs\inventory-web\api\web\index.php(35): yii\base\Application->run()", "#18 {main}" ] }

我已经详细研究了这个问题,尝试过解决方案在我的 config / main.php

I have looked at this problem in detail and tried this solution in my config/main.php

$params = array_merge(
    require(__DIR__ . '/../../common/config/params.php'),
    require(__DIR__ . '/../../common/config/params-local.php'),
    require(__DIR__ . '/params.php'),
    require(__DIR__ . '/params-local.php'),
    require(__DIR__ .'/main-local.php')
);
'components' => [
        'request' => [

            'enableCookieValidation' => false,
            'enableCsrfValidation' => false,

        ],    


'request' => [

'enableCookieValidation' => false,// also set it to true

'enableCsrfValidation' => false, // also set it to true
],

/config/main-local.php 我关注了

'components' => [
    'request' => [
        // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
        'cookieValidationKey' => 'someRandomKey', 

    ],
],

不为我工作。任何帮助将不胜感激。

It's not working for me. Any help would be highly appreciated.

推荐答案

从中删除 request 组件 common / config / main-local.php 并将其保存在 frontend / config / main-local.php 。

Remove the request component from the common/config/main-local.php and just keep it into the frontend/config/main-local.php.

然后在下的 api / config / main.php 中添加以下内容

 'components' => [
        'request' => [
            'enableCookieValidation' => false,
            'enableCsrfValidation' => false,
        ],

这篇关于Yii2无效配置,在访问API时必须为cookieValidationKey配置一个秘密密钥错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆