# Unlock 会员 NFT 显示但无法访问：核对 Lock、到期、身份与 Hook

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/unlock-key-expiration-access-ownership
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

用已有会员记录分开 NFT 所有权、有效期和网站访问条件，定位选错链、角色不同或登录状态缺证。

## 使用工具
- [Unlock Protocol 会员 NFT](https://lianxiaozhi.com/tools/unlock-protocol) · [官方入口](https://unlock-protocol.com/)

## 前置条件
- 准备已有 Member Keychain/Lock 详情、网络与合约、tokenId、有效期以及去敏网站错误记录。
- 不提供私钥或登录 code/signature；只看已有会话记录，不登录、连接、验证签名或调用合约。

## 1. 定位同一条链上的会员

从已有 Dashboard 的 Member Keychain 或 Lock 详情，保留网络、Lock 地址、tokenId；用官方网络页核对部署范围。Lock 是独立 ERC721 合约，另一 Lock 的 Key 不能直接替代。

这里的 Key 是会员 NFT。名称、图片和网址标签不足以定位合约，也无需输入私钥或恢复词。

核对结果：会员身份由链+Lock+tokenId确定，未混入其它会员或秘密 key。
依据：[Unlock：已有 Lock 管理与 Member Keychain](https://docs.unlock-protocol.com/tools/dashboard)
依据：[Unlock：独立 Lock、会员及版本变更](https://docs.unlock-protocol.com/core-protocol/public-lock/)
依据：[Unlock：官方网络和部署入口](https://docs.unlock-protocol.com/core-protocol/unlock/networks)

## 2. 把持有数量与有效会员分开

在已有相同版本结果中，对照 ownerOf(tokenId)、totalKeys(address) 和 balanceOf(address)。PublicLock v15 参考将 totalKeys 描述为包含过期，balanceOf 限有效期范围。

显示 NFT 不等于日期仍有效；一次读取失败也不能填成无会员。持有人的结果须绑定同一历史时刻。

核对结果：所有权、全部 Key 与有效数量各有依据。
依据：[PublicLock v15：身份、价格、有效期与续期接口](https://docs.unlock-protocol.com/core-protocol/smart-contracts-api/PublicLock)
依据：[Unlock：独立 Lock、会员及版本变更](https://docs.unlock-protocol.com/core-protocol/public-lock/)

## 3. 按 tokenId 核对实际到期

对照已有 keyExpirationTimestampFor(tokenId) 与取得时间；不要将默认 expirationDuration 当成某个旧会员的实际到期。v15 参考说修改默认时长不重算已有 Key 时间。

该方法说明中仍有 owner 的旧措辞，但签名参数是 tokenId；缺正确参数或原结果时标待核，不用地址代填。

核对结果：原 NFT、时间戳与参照时刻对应，默认期限未冒充实际期限。
依据：[PublicLock v15：身份、价格、有效期与续期接口](https://docs.unlock-protocol.com/core-protocol/smart-contracts-api/PublicLock)
依据：[Unlock：到期、延长与自动续期条件](https://docs.unlock-protocol.com/core-protocol/public-lock/renewals)

## 4. 检查有效性 Hook 与版本

保留原 publicLockVersion、isValidKey(tokenId)/getHasValidKey(address) 及 Hook 配置证据。v14 变更说明称 Hook 对有效性有最终决定权。

Hooks 页有 v12 范围示例，可让其它资格主体获访问；不能仅据日期或网站放行反推该地址实际拥有某 NFT。未知 Hook 不替读者猜规则。

核对结果：NFT 所有权与合约访问判断分列，版本和自定义规则未知可见。
依据：[Unlock：独立 Lock、会员及版本变更](https://docs.unlock-protocol.com/core-protocol/public-lock/)
依据：[Unlock：有效性及购买 Hook 的边界](https://docs.unlock-protocol.com/core-protocol/public-lock/hooks)
依据：[PublicLock v15：身份、价格、有效期与续期接口](https://docs.unlock-protocol.com/core-protocol/smart-contracts-api/PublicLock)

## 5. 区分登录与管理员权限

在已有登录错误中核对应用域、client_id 与 redirect_uri host 对应；access-denied 表示连接或签消息被拒绝，不是 NFT 被销毁。只记录去敏错误，不保存 code 或签名。

KeyOwner、KeyManager 和 LockManager 不同。网站登录成功不授予 Lock 管理角色，也不能代替会员资格验证。

核对结果：失败位于登录、会员或管理层，角色未由登录状态推断。
依据：[Unlock：登录域、重定向及身份边界](https://docs.unlock-protocol.com/tools/sign-in-with-ethereum/)
依据：[Unlock：Lock 角色与 Key 所有权/管理权](https://docs.unlock-protocol.com/core-protocol/public-lock/access-control)

## 6. 输出可复核的访问缺口

按身份不符、日期已过、Hook/版本未知、登录拒绝或网站规则待核分别整理。若只有有效 Key 结果而缺网站回执，结论仅限合约记录。

旧到期 Key 可以续期而不新建 NFT，但本篇不发续期请求。不能为了排错先购买另一个 Lock 的会员。

核对结果：记录包含身份、有效期、规则、角色和缺证，未宣称恢复网站访问。
依据：[Unlock：到期、延长与自动续期条件](https://docs.unlock-protocol.com/core-protocol/public-lock/renewals)
依据：[Unlock：独立 Lock、会员及版本变更](https://docs.unlock-protocol.com/core-protocol/public-lock/)

## 常见错误
- Key 当私钥，NFT 图片当合约身份。
- balanceOf 为0写成 NFT 所有权已消失。
- 登录或 Hook 放行当 NFT 所有权/Lock 管理证明。

## 完成检查
- 能够区分链/Lock/tokenId、所有权、实际有效期、访问规则及登录错误。
- 未知网站策略、Hook和部署版本保留，未实际登录或访问会员内容。

## 相关知识
- [NFT 的 Token URI、图片和链上所有权怎样对应？](https://lianxiaozhi.com/learn/erc721-tokenuri-metadata)
- [钱包签消息与签交易有什么区别？不付 Gas 的签名也要读内容](https://lianxiaozhi.com/learn/wallet-message-vs-transaction)
- [链上指标历史数值为什么会变？](https://lianxiaozhi.com/learn/point-in-time-metrics)

## 官方依据
- [Unlock：已有 Lock 管理与 Member Keychain](https://docs.unlock-protocol.com/tools/dashboard)
- [Unlock：独立 Lock、会员及版本变更](https://docs.unlock-protocol.com/core-protocol/public-lock/)
- [Unlock：官方网络和部署入口](https://docs.unlock-protocol.com/core-protocol/unlock/networks)
- [PublicLock v15：身份、价格、有效期与续期接口](https://docs.unlock-protocol.com/core-protocol/smart-contracts-api/PublicLock)
- [Unlock：到期、延长与自动续期条件](https://docs.unlock-protocol.com/core-protocol/public-lock/renewals)
- [Unlock：有效性及购买 Hook 的边界](https://docs.unlock-protocol.com/core-protocol/public-lock/hooks)
- [Unlock：登录域、重定向及身份边界](https://docs.unlock-protocol.com/tools/sign-in-with-ethereum/)
- [Unlock：Lock 角色与 Key 所有权/管理权](https://docs.unlock-protocol.com/core-protocol/public-lock/access-control)
