基于MYKEY的第三方授权登录

一种类似于OpenID的区块链第三方授权登录方案

MYKEY登录,即通过MYKEY账号登录APP和网站,同时享受MYKEY账号的好处:免费使用,支持多链。

目前MYKEY支持ETH和EOS两条主流公链。有的用户只开通了一条公链,也就是只有一条链上的账号和公钥地址;有的用户开通了两条公链,授权登录时,可选择任意一条公链来签名和验证签名。

MYKEY传给第三方应用的数据包括:用户的MYKEY ID,区块链账号及对应的公钥地址。

MYKEY授权登录,类似于传统互联网的OpenID技术,第三方应用通过MYKEY ID可识别用户,通过区块链上的账号可获取到用户的余额信息,通过签名和验证签名来确定用户拥有账号的操作权限。

第三方授权登录流程

不同的第三方应用,使用MYKEY作为第三方登录的方法也不同。

H5页面
Web应用
Android应用
iOS应用
H5页面

H5页面,兼容Scatter或者Web3协议,即可获取到用户的MYKEYID和区块链账号信息,完成登录。

以某去中心化交易所的H5页面为例:

接入步骤:

a. 针对Scatter协议,先使用scatter.connect方法,再使用login方法即可获得用户的账号信息,示例代码见:H5 EOS登录

b. 针对Web3协议,使用web3.eth的givenProvider方法即可获得用户的账号信息,示例代码见:H5 ETH登录

Web应用

Web应用遵守SimpleWallet协议(EOS),或者WalletConnect协议(ETH),MYKEY通过扫描二维码,会自动识别协议,完成授权登录。

以某去中心化交易所使用MYKEY扫码登录为例:

接入流程:

  1. Web应用根据需要传递的JSON数据,生成二维码。要传递的数据结构见 Web应用扫码登录

  2. MYKEY用户扫描二维码,授权登录。

  3. MYKEY回调Web应用。

Android应用

Android应用,集成MYKEY Android SDK,调用SDK的authorize方法,即可完成登录。

以某大型区块链游戏全民炮战为例:

接入流程:

  1. 环境准备,添加MYKEY Android SDK

  2. 使用initSimple方法初始化SDK

  3. 使用authorize方法授权登录

  4. APP收到用户的ID和区块链上的地址

  5. (可选)APP根据用户账号从公链上查询到地址,并进行签名验证,也称为验签。针对不同的编程语言,我们提供了多种验签示例代码

iOS应用

iOS应用,集成MYKEY iOS SDK,调用SDK的authorize方法,即可完成登录。

接入流程:

  1. 环境准备,添加MYKEY iOS SDK

  2. 使用initSimple方法初始化SDK

  3. 使用authorize方法授权登录

  4. APP收到用户的ID和区块链上的地址

  5. (可选)APP根据用户账号从公链上查询到地址,并进行签名验证,也称为验签。针对不同的编程语言,我们提供了多种验签示例代码

MYKEY账户有自主账户和受保障账户两种类型,自主账户有丢失不可找回的风险,因此不建议第三方应用允许MYKEY自主账户来授权登录。第三方可根据MYKEY的返回的来判断账户类型。

更多技术细节请参考:更多MYKEY登录的技术原理和流程