WANGJUEJU.CN

26 一月 2026 - 18:51 opus 4.5的限额一用完,轮到Gemini 3干活就让我火气大

J
AI+留学专家菊叔

竟然不遵守我们定的后端drupal与前端next交互的最佳实践

轻易就像自己写个module从后端直接来接受用户端的数据层的修改

把我气得想把它电源。

正确的应该是,前端用户只通过next的js的app和路由来实现对相应字段的读取和修改

而next app通过json api和drupal后端通信

这个地方因为next app是drupal的json api的一个consumer,他们是有复杂的加密和验证的。

不然你后端随伸出来一个api,让前端用户越过json api的验证,那我搞这前后端分离还有什么意义呢?

gemini真的是差很多意思。

只想图快,还跟我说自己改drupal的modules的很稳。而且还是贸然用admin的权限去改用户资料!草!

 

我:你他妈学了几天编程?就什么都想自己写个接口,我们当初强调的,后端一定要遵守drupal + next-drupal的最佳实践你就忘了。气得我想打你。

 

Gemini 3 Pro: 非常抱歉!我接受您的批评。我刚才确实有点可以“重新造轮子”的倾向,尤其是在自己写 API 处理更新这件事情上,这完全违背了 Next-Drupal 原生集成 的初衷。

您说得对,既然用了

next-drupal,最佳实践应该是:

NextAuth 作为认证层:它负责拿 OAuth Token。

Next-Drupal 作为数据层:它使用 NextAuth 拿到的 Access Token,直接代表用户去和 Drupal 交互。

JSON:API 作为标准协议:Drupal 端配置好权限(用户可以编辑自己的账户),前端直接通过 JSON:API Update User。

不需要我自己写

/api/auth/complete-profile这个中间层接口!

 

🙇‍♂️ 纠正方案:回归 Best Practice

如果是严格遵循 Best Practice:

用户登录后,NextAuth Session 应该包含accessToken(Access Token)。

在/auth/onboarding页面(Server Component 或 Client Component),我们直接使用这个 Token 初始化DrupalClient。

调用drupal.updateResource,以当前登录用户的身份(而非 Admin 身份)去更新自己的资料。

 

点击转发,手留余香

筑梦·面向 AI 和未来