我正在使用带有 yii2-usuario 的 Yii 2 authclient 扩展,当我尝试登录谷歌时,我被重定向到
https://localhost/yii2/frontend/web/index.php?r=user%2Fsecurity%2Fauth&authclient=google&state=a210c7124891a0083463a&code=4%2F0AX4XfWgAhMrw6CVtm4cj8-&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&prompt=none
我收到 400 Invalid auth state parameter.
错误
yii\web\HttpException: Invalid auth state parameter. in C:\xampp\htdocs\yii2\vendor\yiisoft\yii2-authclient\src\OAuth2.php:122
Stack trace:
#0 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2-authclient\src\AuthAction.php(417): yii\authclient\OAuth2->fetchAccessToken('4/0AX4XfWgAhMrw...')
#1 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2-authclient\src\AuthAction.php(227): yii\authclient\AuthAction->authOAuth2(Object(Da\User\AuthClient\Google), Array)
#2 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2-authclient\src\AuthAction.php(210): yii\authclient\AuthAction->auth(Object(Da\User\AuthClient\Google))
#3 [internal function]: yii\authclient\AuthAction->run()
#4 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\Action.php(94): call_user_func_array(Array, Array)
#5 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\Controller.php(181): yii\base\Action->runWithParams(Array)
#6 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\Module.php(534): yii\base\Controller->runAction('auth', Array)
#7 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\web\Application.php(104): yii\base\Module->runAction('user/security/a...', Array)
#8 C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\Application.php(392): yii\web\Application->handleRequest(Object(yii\web\Request))
#9 C:\xampp\htdocs\yii2\frontend\web\index.php(39): yii\base\Application->run()
#10 {main}
我也在使用 yii\web\DbSession
当我将 yii\web\DbSession
更改为 yii\web\Session
时,它会起作用。我如何让它与 yii\web\DbSession
一起使用?
我的会话表看起来像这样
CREATE TABLE `yiisession` (
`id` char(40) NOT NULL,
`expire` int(11) NOT NULL,
`data` longblob NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在我的main.php
'session' => [
'class' => 'yii\web\DbSession',
'sessionTable' => 'yiisession',
]
其他信息
信息 | 版本 |
---|---|
Yii 版本 | 2.0.42.1 |
Yii Auth 客户端版本 | 2.2 |
PHP 版本 | 8.0.8 |
更新
我的数据库连接
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii2',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
更新 2
CREATE TABLE `session` (
`id` char(40) NOT NULL,
`expire` int(11) DEFAULT NULL,
`data` longblob DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Id 应该是一样的吗?当我转到我的联系页面时,我得到了这个。当我提交联系表格时,闪光灯没有出现。