如何修复forge-rimconfigurator-inventor中Authenticate调用的AUTH-001错误
在VSCode中运行forge-rimconfigurator-inventor项目时,调用Authenticate接口触发AUTH-001错误,提示指定的client_id无对应API产品访问权限。尝试添加.env文件和launch.json配置均无效,且无法找到设置Client ID与Client Secret的环境变量。报错日志如下:
Hosting environment: Production
Content root path: e:\New folder\IMP\AF\forge-rimconfigurator-inventor-master\InventorDA
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.
未处理异常:Autodesk.Forge.Client.ApiException: 调用Authenticate失败: { "developerMessage":"指定的client_id无对应API产品访问权限", "moreInfo": "https://forge.autodesk.com/en/docs/oauth/v2/developers_guide/error_handling/", "errorCode": "AUTH-001"}
在 Autodesk.Forge.TwoLeggedApi.AuthenticateAsyncWithHttpInfo(String clientId, String clientSecret, String grantType, Scope[] scope)
在 Autodesk.Forge.TwoLeggedApi.AuthenticateAsync(String clientId, String clientSecret, String grantType, Scope[] scope)
在 InventorDA.Controllers.OAuthController.Get2LeggedTokenAsync(Scope[] scopes) 位置 e:\New folder\IMP\AF\forge-rimconfigurator-inventor-master\InventorDA\Controllers\OAuthController.cs:行72
在 InventorDA.Controllers.OAuthController.GetInternalAsync() 位置 e:\New folder\IMP\AF\forge-rimconfigurator-inventor-master\InventorDA\Controllers\OAuthController.cs:行58
在 InventorDA.Controllers.DesignAutomationController.CreateBucket() 位置 e:\New folder\IMP\AF\forge-rimconfigurator-inventor-master\InventorDA\Controllers\DesignAutomationController.cs:行254
在 InventorDA.Controllers.DesignAutomationController.Post(ModelAttributes value) 位置 e:\New folder\IMP\AF\forge-rimconfigurator-inventor-master\InventorDA\Controllers\DesignAutomationController.cs:行70
在 System.Threading.Tasks.Task.<>c.b__139_1(Object state)
在 System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)
在 System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state)
在 System.Threading.QueueUserWorkItemCallback.Execute()
在 System.Threading.ThreadPoolWorkQueue.Dispatch()
1. 检查Client ID的API权限
- 登录Autodesk开发者平台,进入你的应用详情页
- 确认应用已启用Design Automation for Inventor和Data Management这两个API产品权限——AUTH-001错误的核心原因就是client_id缺少目标API的访问权限
- 若未启用,勾选对应权限并保存
2. 确认配置加载方式
该项目默认使用appsettings.json而非.env读取凭证,检查项目根目录下的appsettings.json:
{ "Forge": { "ClientId": "你的Client ID", "ClientSecret": "你的Client Secret" } }
- 如果没有上述配置,手动添加并替换为真实凭证
- 若坚持使用环境变量,需在系统环境变量中添加
FORGE_CLIENT_ID和FORGE_CLIENT_SECRET,添加后重启VSCode确保变量生效
3. 验证权限与令牌
- 重新生成访问令牌,确认请求的Scope包含项目所需权限(如
data:read、data:write、code:all) - 可直接调用OAuth接口测试,确保返回的令牌具备对应API的访问权限
4. 核对代码中的配置读取逻辑
查看OAuthController.cs的Get2LeggedTokenAsync方法:
- 若代码从环境变量读取,确保变量名称与代码中使用的完全一致(比如代码用
Environment.GetEnvironmentVariable("FORGE_CLIENT_ID"),则环境变量名必须匹配) - 若从配置文件读取,确认配置路径正确
内容的提问来源于stack exchange,提问作者Dhaval3112

