This repository was archived by the owner on Mar 1, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +59
-6
lines changed
Expand file tree Collapse file tree 2 files changed +59
-6
lines changed Original file line number Diff line number Diff line change @@ -129,15 +129,15 @@ SaaS、Typescript、React、Nextjs、Taildwindcss、MDX、Linaria、Shiki、Reac
129129<!-- START_COMMIT_TABLE -->
130130| | 2.03 | 2.04 | 2.05 | 2.06 | 2.07 | 2.08 | 2.09 | 2.10 | 2.11 | 2.12 | 2.13 | 2.14 | 2.15 | 2.16 | 2.17 | 2.18 | 2.19 | 2.20 | 2.21 | 2.22 | 2.23 |
131131| ------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
132- | echozyr2001 | ✅ | ✅ | ✅ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ✅ | ⭕️ | | | | | | | |
132+ | echozyr2001 | ✅ | ✅ | ✅ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ✅ | ⭕️ | ✅ | | | | | | |
133133| Kirov7 | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ❌ | | | | | | | | | | | | | | | |
134- | Hoshino | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | | | | | | | |
135- | RisingGalaxy | ⭕️ | ✅ | ✅ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | | | | | | | |
134+ | Hoshino | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | ⭕️ | | | | | | |
135+ | RisingGalaxy | ⭕️ | ✅ | ✅ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | ⭕️ | | | | | | |
136136| YamKH514 | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ❌ | | | | | | | |
137137| DriveFLY | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ❌ | | | | | | | |
138- | Makise | ⭕️ | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | ✅ | ✅ | ⭕️ | ✅ | | | | | | | |
139- | DemoJustLuGuo | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | | | | | | | |
140- | AmberHeart | ✅ | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | | | | | | | |
138+ | Makise | ⭕️ | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | ✅ | ✅ | ⭕️ | ✅ | ✅ | | | | | | |
139+ | DemoJustLuGuo | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | | | | | | |
140+ | AmberHeart | ✅ | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ✅ | ✅ | ✅ | ✅ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | | | | | | |
141141<!-- END_COMMIT_TABLE -->
142142
143143## 数据统计
Original file line number Diff line number Diff line change @@ -383,4 +383,57 @@ export default defineSchema({
383383
384384> 总结,快速过了一下 convex 的教程,熟悉了插入与查询数据的方式,同时成功在 ` cfc-web ` 项目中实现报名表单数据的提交。
385385
386+ ### 02.17
387+
388+ > 学习时间:120 min
389+
390+ 主要想看一下 nextjs 提供的 Authentication 功能
391+
392+ 在 nextjs 官方文档提到了一点:
393+
394+ > While you can implement a custom auth solution, for increased security and simplicity, we recommend using an authentication library.
395+
396+ 在 nextjs 项目中使用官方提供的 Auth lib 在适配度与安全性上可能更合适。
397+
398+ ---
399+
400+ 浏览文档时发现了一个特殊的路由 ` app/actions/*.ts ` ,文档中没有解释具体含义,我初步将它理解为与 ` app/api/*/router.ts ` 是同一种 ` api ` 的不同实现方式。
401+
402+ ---
403+
404+ 尝试了一些钱包连接库,效果都不理想,最终还是使用最底层的库自己搭轮子,主流的钱包 kit 在底层都是使用了 wagmi:https://wagmi.sh/
405+
406+ wagmi 是一套用于链上交互的 React hooks, 基于 viem 构建。例如
407+
408+ * 连接钱包 useConnect
409+ * 获取当前连接的用户地址 useAccount
410+ * 发送交易 useSendTransaction
411+ * 读取合约变量 useReadContract
412+
413+ 如果使用的组件是服务端组件,无法使用 hook, 则建议直接使用 viem,其无需另外安装,wagmi 已默认导出了 viem 的所有方法。
414+
415+ ** SIWE 规则**
416+
417+ SIWE(SignIn with Ethereum)是一种在以太坊上验证用户身份的一种方式,表明用户有对应钱包的控制权。
418+
419+ 你可能会有一个疑问,在网站上通过钱包连接之后不久代表了我有钱包的所有权了吗。
420+
421+ 对于前端来说是这样的,但是对于一些需要后端支持的接口调用,你是没有办法表明自己的身份的,若只是在接口中传入你的地址的话,那么谁都可以冒用你的身份了,毕竟地址是公开的信息。
422+
423+ SIWE 的流程总结起来就是三个步骤:连接钱包 -- 签名 -- 获取身份标识。
424+
425+ ** 连接钱包**
426+
427+ 通过钱包插件在 Dapp 中连接钱包。
428+
429+ ** 签名**
430+
431+ 在 SIWE 中,签名的步骤包括获取 Nonce 值、钱包签名以及后端校验。
432+
433+ 获取 Nonce 值这一步是参考 ETH 交易中的 Nonce 值设计的,后端收到请求之后,返回生成的随机 Nonce 值,并和当前的地址关联,为后面的校验签名做准备,
434+
435+ 前端获取到 Nonce 值之后,唤起钱包,用户授权签名。签名完成后发送给后端,
436+
437+ 后端在校验签名通过后,返回对应的用户身份标识(一般是 JWT),前端在后续请求发送时需要带上对应的地址和身份标识,表明自己对钱包的所有权。
438+
386439<!-- Content_END -->
You can’t perform that action at this time.
0 commit comments