feat(auth): Sign-in with Ethereum for Better Auth
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 42/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- github, mongodb, next.js, typescript
调研方向
Start with frontend/src/features/auth/server/auth.ts and the sign-in components under features/auth/components; first verify whether Better Auth provides a SIWE plugin and read its API. Trace how the existing email OTP flow and MongoDB adapter handle accounts and sessions, then check compatibility with the signed assertion bridge on feat/toju-agent-storage. Done means wallet linking and unlinking work, replayed or invalid SIWE messages are rejected, and proxy/session behavior remains unchanged.
由索引模型根据 Issue 内容生成。
描述
Summary
Add wallet-based sign-in (EIP-4361) alongside the existing email OTP flow, optionally pulling the user's ENS name and avatar into the profile.
Motivation
Crypto-native users expect to sign in with their wallet, and it ties account identity to the addresses used for payments and agents.
Current state in this repo
frontend/src/features/auth/server/auth.tsconfigures Better Auth with the MongoDB adapter, email-OTP and Next cookies; sign-in forms are underfeatures/auth/components.
Proposal
- Add a SIWE flow (nonce, message, signature verification) if Better Auth provides a plugin; otherwise implement a small custom plugin.
- Link a wallet address to an existing account (verified by signature) rather than creating duplicate accounts.
- Optional: show ENS name/avatar from the ENS issue's resolution helper.
Acceptance criteria
- Nonces are single-use and expire; replayed signatures are rejected.
- Domain, chain id and expiry in the SIWE message are validated.
- A user can link and unlink a wallet; the proxy/session behaviour is unchanged.
Out of scope
- Replacing email OTP.
Technical notes and risks
- Backend identity for agent endpoints uses a different mechanism on
feat/toju-agent-storage(signed assertion bridge); keep the two flows compatible.
Verify before implementing
- Whether Better Auth currently ships a SIWE plugin and its API.
References
- EIP-4361 Sign-In with Ethereum: https://eips.ethereum.org/EIPS/eip-4361
Part of ##1. Ground rules for all issues in this roadmap are listed there (testnet-first, no secrets in the repo, chain logic behind the registry, tests and docs with every PR).
- 主要语言
- Python
- 星标
- 2
- 派生
- 4
- 平均合并
- 6 小时 14 分钟
- 30 天内合并 PR
- 18
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
QMeshPy/distributed-quantum 的其他 Issue
-
enhancement good first issue helia storage tier-1
难度 2/5 1-3 小时 新手友好度 78/100
QMeshPy/distributed-quantum#53 ·
维护者通常 1 天内回复
-
chain-integration enhancement payments research-spike tier-2
难度 4/5 3-5 天 新手友好度 55/100
QMeshPy/distributed-quantum#78 ·
维护者通常 1 天内回复
-
chain-integration enhancement payments research-spike tier-2
难度 3/5 1-2 天 新手友好度 66/100
QMeshPy/distributed-quantum#77 ·
维护者通常 1 天内回复
-
documentation good first issue kubo storage tier-1
难度 2/5 1-3 小时 新手友好度 42/100
QMeshPy/distributed-quantum#75 ·
维护者通常 1 天内回复
-
enhancement kubo storage tier-2
难度 4/5 3-5 天 新手友好度 56/100
QMeshPy/distributed-quantum#74 ·
维护者通常 1 天内回复
查看 QMeshPy/distributed-quantum 的全部 Issue
相似的 Issue
-
难度 1/5 1-3 小时 新手友好度 85/100
WLAN-Pi/wlanpi-profiler#341 ·
维护者通常 1 天内回复
-
Memory leak: the shared `validation_aborted_error` keeps every traceback it is raised through可能已有人在做 @Fire162 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
graphql-python/graphql-core#287 ·
-
难度 2/5 1-3 小时 新手友好度 67/100
roman-corgi/ctc-dip#160 ·
维护者通常 1 天内回复
-
type-bug
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
render_findings.py reads and writes in the host's default encoding, so findings.html breaks on a cp1252 Windows host可能已有人在做 @Aaqibhafeezkhan 今天认领。 未关闭bug good first issue mentored python size: XS up-for-grabs
难度 2/5 1-3 小时 新手友好度 75/100
dheerajjha/mcp-migrate#366 · 1 条评论 ·
维护者通常 1 天内回复