Steem上的应用生态正变得越来越好,其中Steem Connect的出现起到非常重要的作用。它为去中心化平台提供了一个安全的中心化授权接口,从而使软件开发变的简单,高效。此教程用来介绍基于 Steem Connect V2 的应用开发流程。
PS: SteemConnect 有V1 版本,但不推荐使用,以下 SteemConnect 特指 V2
基本原理
同我们使用微信,QQ注册登录第三方网站一样,SteemConnect也使用了一种称为OAuth2的技术,阮一峰的这篇文章中有详细的讲解。
简单理解:第三方应用 A 要获取用户 B 的权限,必须向 B 信任的中心 C 提出申请,B 向 C 输入私钥批准申请,C 将包含该权限的Token 给予 A,A就可以使用 B 的相应权限。
好处:A 从未接触过 B 的私钥,且 B 可以只授予 A 部分权限,权限可通过控制Token过期随时收回。
开发者注册
第三方应用要接入SteemConnect,需要事先注册,注册地址:https://v2.steemconnect.com/dashboard
登录之后,点击左下方的My Apps, 在 My Apps 界面中点击 New App
这里需要 3 Steem 来给自己的 APP 注册一个账号,此账号由官方管理,你接触不到私钥。账号名称没有强制要求,但惯例以app结尾,例如busy.app, cnsteem.app
APP 注册成功之后,我们需要对 APP 进行配置,点击My Apps -> 选择 App -> 选择Edit
最重要的是Redirect URI(s)的设置,它可以设置多个,但一定要与授权之后返回的页面地址保持相同。比如在本地测试,用户在http://localhost:8080/ 申请登录,Redirect URI(s)中必须有相同的地址!
应用开发
Steemit 官方为我们提供了完整的 Javascript 开发接口和示例。
https://github.com/steemit/sc2-sdk
https://github.com/cnsteem/sc2-angular
以提供的Angular为例,需要修改 app.js, 适配自己的app
sc2.init({
app: 'cnsteem.app',
callbackURL: 'http://localhost:8080/',
scope: ['vote', 'comment']
});
当用户授权成功后,服务器会返回一个Access Token, 通过该 token 调用 Steemconnect的API,进行点赞,评论,发帖等相关操作。
具体 Demo 可参考:https://cnsteem.github.io/sc2-angular/
结尾
国内程序员特别喜欢使用Vue 这个前端框架,通过 Vue 配合 sc2-sdk 可以开发许多有意思的应用,如果有兴趣可以尝试一下。
另外关于 steem 开发的文章鼓励大家加上 cn-progamming 标签 !