MYKEY Docs
中文English
中文
中文
  • 简介
  • 基于MYKEY的第三方授权登录
    • 验签代码示例
    • 更多MYKEY登录的技术原理和流程
  • 接入MYKEY
    • 多种方式接入MYKEY
    • Mobile H5页面接入
      • ETH
      • EOS
      • JS功能扩展
    • MYKEY Android SDK接入
      • 环境准备
      • 初始化SDK
      • 认证
      • 签名
      • 转账
      • 合约调用
    • MYKEY iOS SDK接入
      • 环境准备
      • 初始化SDK
      • 认证
      • 签名
      • 转账
      • 合约调用
    • Web应用扫码接入
    • SimpleWallet协议接入
    • Deeplink协议接入
  • 深入MYKEY
    • 深入MYKEY账户
    • 类和方法定义
      • Android类
      • iOS类
    • 错误码
    • 识别MYKEY合约充值
      • ETH充值
      • EOS充值
    • MYKEY白皮书
  • KEY ID
    • KEYID ETH合约介绍
      • 创建账户模块
      • 数据存储模块
      • 逻辑模块
      • 逻辑管理模块
    • 账户恢复机制
    • KEYID合约升级流程
    • KEYID合约升级记录
      • ETH
        • KEY ID以太坊合约升级保护期参数调整公告
        • KEY ID以太坊逻辑合约模块升级公告
        • KEY ID以太坊合约升级保护期参数调整公告
        • KEY ID以太坊 AccountLogic/DualsigsLogic 合约升级公告
        • KEY ID以太坊 DappLogic 合约升级公示
  • 开发资源
    • ETH
    • EOS
  • 加入我们
    • 项目提交上架
    • 开发者社区
Powered by GitBook
On this page
  • MYKEY登录技术原理
  • MYKEY登录认证流程
  • 1. 发起认证请求
  • 2. 签名/返回回执
  • 3. 解析回执,请求公钥‌
  • 4. 返回公钥及其状态
  • 5. 验证签名

Was this helpful?

  1. 基于MYKEY的第三方授权登录

更多MYKEY登录的技术原理和流程

Previous验签代码示例Next多种方式接入MYKEY

Last updated 4 years ago

Was this helpful?

‌MYKEY登录允许使用MYKEY帐号登录访问第三方应用,发送区块链交易,具有如下特点:‌

  • 受保障 的非托管区块链账户

  • 免费的 区块链使用

  • 多链支持及多语言服务

MYKEY登录技术原理

MYKEY登录依赖ECDSA-secp256k1的签名和验签方法。由第三方应用发起登录请求,用户通过MYKEY提供指定的签名,第三方应用验证签名的合法性,完成认证。‌

MYKEY登录认证流程

‌

1. 发起认证请求

第三方应用发起认证请求,MYKEY会根据渠道采取不同的处理策略。‌

(1)H5页面‌

MYKEY兼容scatter协议和web3协议,使用scatter和web3 JS库的方法获取到账户信息即可完成登录。‌

(2)PC WEB‌

第三方应用按照SimpleWallet或者WalletConnect协议将请求参数编码成QR Code并展示,使用MYKEY扫码并授权,通过后MYKEY回调第三方应用以完成登录。‌

(3)APP‌

接入SDK,SDK初始化后,可直接调用authority方法唤醒MYKEY。‌

2. 签名/返回回执

MYKEY接收并解析参数,并根据传递的参数,返回用户的账号信息。‌

(1)chain参数‌

chain参数的值,可为ANY, EOS, 或者ETH。‌

如果chain参数为ANY,或者未传递chain参数,MYKEY按照默认顺序选择验签的链(先EOS后ETH)。‌

如果指定了chain参数,MYKEY会查询指定链的账号,并返回账号信息。‌

如果用户未在指定的链上无账号,MYKEY返回账号为空,第三方应用可提示用户开通该链。‌

3. 解析回执,请求公钥‌

第三方应用解析MYKEY的返回回执,获得用户的mykeyUID和用户地址公钥。‌

(1)检查该mykeyUID是否注册过。‌

如果该mykeyUID未注册过,则在本地数据库登记mykeyUID和对应链的用户地址,并选择一条链作为查询地址。‌

如果已注册过,则直接选择原mykeyUID所关联的用户地址作为查询地址。‌

(2)查询公钥地址及状态‌

对安全性要求不是很高的第三方应用,也可以直接信任上一步MYKEY返回的公钥。‌

4. 返回公钥及其状态

区块链服务商或MYKEY返回对应地址的公钥信息。‌

5. 验证签名

如果公钥状态不是可用状态(status=1),则直接返回失败。‌

如果公钥是可用状态,检查(1)签名与用户公钥是否对应;(2)签名内容是否与请求内容相同。如验证通过,则返回成功,否则返回验签失败。‌

​

第三方应用可以选择直接通过区块链服务,如infura查询用户的ETH公钥,通过dfuse查询用户的EOS公钥。查询方法可参考 中的 获取ReservedKey。‌

第三方应用服务端验证签名的示例代码,可参考 。‌

验签代码示例
验签代码示例