You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11开发Atlassian Jira Cloud Connect App安装报错求助

问题分析与解决步骤

1. 解决419 CSRF验证失败错误

Jira Cloud的安装回调是外部发起的POST请求,不会携带Laravel的CSRF令牌,必须将回调路由排除在CSRF验证范围外。

打开app/Http/Middleware/VerifyCsrfToken.php,修改$except数组,添加你的安装回调路由URI:

protected $except = [
    // 替换为实际的安装回调路由,比如 '/atlassian/install'
    '/atlassian/install',
];

注意:路由URI必须和web.php中定义的完全一致,包括开头的斜杠。

2. 解决Session store not set on request错误

这个错误是因为处理安装请求的路由没有初始化会话,Laravel的会话由StartSession中间件负责初始化,Laravel 11中web中间件组默认包含该中间件,需确保安装路由关联到正确的中间件。

方式一:依托默认web中间件组

Laravel 11默认web.php内的所有路由都自动使用web中间件组,直接定义路由即可:

// 直接在web.php中定义安装路由
Route::post('/atlassian/install', [InstallationController::class, 'handleInstall']);

方式二:手动添加StartSession中间件

如果路由未使用web中间件组,需手动挂载会话初始化中间件:

Route::post('/atlassian/install', [InstallationController::class, 'handleInstall'])
    ->middleware(\Illuminate\Session\Middleware\StartSession::class);

3. 额外检查项

  • 确认config/session.php中的driver配置有效(比如默认file驱动,需保证storage/framework/sessions目录有读写权限)。
  • Ngrok域名必须和Atlassian开发者后台配置的回调域名完全一致,且必须使用HTTPS(Jira强制要求回调为HTTPS协议)。
  • 若安装流程需临时存储数据(如state参数),控制器内要正确调用会话:
public function handleInstall(Request $request)
{
    // 示例:将state存入会话
    session(['jira_state' => $request->input('state')]);
    // 后续业务逻辑...
}

内容的提问来源于stack exchange,提问作者Matti Kiviharju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 06:32:03