Solana Token實現身分認證:NFT作爲Web3註冊憑證探索

robot
摘要生成中

探索使用 Solana Token 實現身分認證

NFT 作爲一種不可替代的代幣,非常適合用作身分認證工具。本文將通過一個簡單示例,探討使用 NFT 作爲註冊憑證的可行性。

前言

在開始之前,先介紹一下將要用到的工具。

SPL Token

我們可以直接使用 Solana 提供的通用實現:Token Program。Token Program 屬於 Solana Program Library(SPL)的一部分,SPL 提供了包括 Token、Swap、Memo 在內的多個常用程序實現,並提供了完善的客戶端庫、CLI 等工具,極大方便了 Solana 開發者。

Web3 新手系列:探索使用 Solana Token 登入

Solana Playground

Solpy 提供了一個在線編寫和部署 Solana 合約的環境,默認包含一些常用工具,如 SPL Token。我們可以通過 spl-token-cli 方便地創建和管理 Token。

Web3 新手系列:探索使用 Solana Token 登入

Auth Token

在這部分,我們會創建一個 NFT Token。如果用戶 Mint 了該 Token,則認爲該錢包地址已在系統中註冊,否則提示用戶先進行註冊。

現在開始 On-chain 部分:

創建 Token

使用 spl-token 創建一個新的 token,通過 --decimals 指定它是一個不可分割的 Token(類似 NFT):

spl-token create-token --decimals 0

輸出日志中的 Mint Address 就是我們創建的 Token 的 ID。

Web3 新手系列:探索使用 Solana Token 登入

創建 Token Account

爲上一步創建的 Token 創建一個 Token Account:

spl-token create-account <token_mint_address>

Web3 新手系列:探索使用 Solana Token 登入

Mint Token

嘗試爲剛創建的 Token Account mint 一個 Token unit:

spl-token mint <token_mint_address> 1

也可以直接給一個錢包地址 mint token:

spl-token mint <token_mint_address> 1 <wallet_address>

Web3 新手系列:探索使用 Solana Token 登入

爲錢包地址 Mint

如果要爲某個錢包地址鑄造 Token,需要先爲該地址創建 Token Account,然後使用創建的 Token Account mint 新的 Token unit。

爲錢包地址創建 Token Account:

spl-token create-account <token_mint_address> --owner <wallet_address>

Web3 新手系列:探索使用 Solana Token 登入

獲取 Token Account

通過 RPC 接口的 getTokenAccountsByOwner 方法,可以查詢某個錢包地址是否有 Mint 過我們創建的 NFT。

Web3 新手系列:探索使用 Solana Token 登入

實現

接下來,我們通過創建一個簡單的 Nextjs 項目來實現功能,使用 Ant Design Web3 來連接錢包。

初始化 Nextjs 項目:

npx create-next-app@latest

Web3 新手系列:探索使用 Solana Token 登入

添加相關依賴:

npm install @ant-design/web3 @ant-design/web3-solana @solana/spl-token

Web3 新手系列:探索使用 Solana Token 登入

創建 sign-in 和 sign-on 頁面,分別用於連接錢包檢查用戶是否註冊,以及讓用戶進行註冊流程。

在 sign-in 頁面,系統會根據連接的錢包地址查找關聯的 Token Account。如果找不到數據,則認爲該錢包地址未註冊。

Web3 新手系列:探索使用 Solana Token 登入

sign-on 頁面會爲用戶創建 Token Account 並 Mint Token,作爲用戶已註冊的憑證。

Web3 新手系列:探索使用 Solana Token 登入

總結

我們使用 spl-token-cli 創建了一個 NFT,然後通過判斷錢包地址是否有 Token Account 並 Mint 過 Token 來判斷是否註冊。

當 Web3 用戶連接錢包時,系統會自動創建 Token Account 並 Mint Token 作爲註冊憑證。之後用戶就可以使用同樣的錢包地址再次登入網站。

Web3 新手系列:探索使用 Solana Token 登入</wallet_address></token_mint_address></wallet_address></token_mint_address></token_mint_address></token_mint_address>

SOL0.76%
TOKEN8.97%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 8
  • 分享
留言
0/400
熊市炒面师vip
· 07-16 07:14
就这?成本太高 看不懂在搞啥幺蛾子
回復0
号角三声vip
· 07-15 23:10
不错的方案 看上去挺靠谱
回復0
Floor_Sweepervip
· 07-14 04:06
咋还整这花里胡哨的登录
回復0
zkProofInThePuddingvip
· 07-14 04:05
冲 尝试下这身份机制
回復0
rugdoc.ethvip
· 07-14 04:02
炒作gm还不如来这实在
回復0
跨链深呼吸vip
· 07-14 03:59
很标准的区块链扯皮解决方案
回復0
DegenDreamervip
· 07-14 03:49
这波算是给nft整明白了啊
回復0
StakeTillRetirevip
· 07-14 03:44
solana真的yyds
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)