Steemconnect login with posting key instead of active key

in #utopian-io5 years ago (edited)

Repository

https://github.com/steemscript/steemconnect

What Will I Learn?

  • Steemconnect login with posting key (instead of active key!) for apps that has already been authorized to use the posting right.

But you will also learn the following:

  • List of posting right authorizations
  • List of posting right authorizations via Steemconnect
  • Posting right revoke using Steemconnect
  • Posting right authorization using Steemconnect
  • (Advanced) Behind the scene

Requirements

  • Steem posting key
  • Steem active key
  • App you want to try (e.g., Busy, steempeak, eSteem, Steemhunt, etc)

Difficulty

  • Basic (to follow)
  • Intermediate (conceptually)
  • Advanced (behind the scene)

Tutorial Contents

Background

Steemconnect (SC) is the most popular way of authorization and login for Steem dApps, e.g., busy, steempeak, esteem, partiko, steemhunt, tasteem, ntopaz, etc.

Except for steemit.com, which is the official front-end that most people enter their keys with confidence, let's say someone offers a new Steem-based app that requires your key. Then you'll be hesitant to enter even your posting key.

That's why SC is so popular. While there is still some trust/security issue with SC system itself, basically we believe this open-source authorization method, supported by Steemit Inc.

To use it in the apps that requires posting and voting, we first need to authorize our posting right to each app, and this is the point where SC server security is important. But posting right authorization is to avoid saving posting key which is more insecure. So posting right authorization itself is fine to me.

But the problem is the current SC requires active key for login to apps that have already been authorized when the SC session is expired. This is a known issue and may be resolved in SC3 (SteemConnect 3: A better way to sign, latest post about SC3, 3 months ago).

But we don't know when SC3 will be released.

How do you enter your key? Most likely copy & paste from some other source. This step is very vulnerable and users tend to make a mistake, e.g., posting their keys! due to copy&paste error. That's why there are bots that are trying to steal the keys or protect by notifying the user that the key is exposed. With active keys, financial transactions (transfer, powerdown) are available, so this is a really important security issue.

So I prepare alternative solutions to avoid entering active key until then.

Step 1. Posting right initial authorization

Again, you need to do initial posting right authorization to a dapp. Most likely you already have done this to some dapps, e.g., Busy, steempeak, etc. (I'll explain where you can see the list of the authorized apps in List of posting right authorization section.)

Even if you don't have or don't remember, don't worry. Let's just try with busy.org which is open-source and probably the most mature and widely-used app. If you're sure that you already authorized busy, you can skip this step and go to Step 2.

  • Visit https://busy.org and click Log in
  • Then, you'll see the following dialog. As it says, it requires you to authorize your posting right (role).

  • Click continue

  • You need to enter active key to authorize your posting right to the app.

Again, this is fine and necessary for initial authorization!

However, after that, say you use a different browser, or Chrome's incognito mode or such, then you see the same dialog and you are asked to enter your active again!, which it shouldn't be.

So I introduce two methods to avoid entering active key: 1. using a different app, and 2. using the same app. While Method 2 is more natural (at least to me), but it may be slightly more advanced.

Step 2. (Method 1) Login with posting key after the initial authorization: using a different app that only requires posting key

I recommend this way if you're not comfortable with changing the url manually.

  • First, make sure that you already authorized your posting right to an app, e.g., busy.app in Step 1.

  • Use a different browser or incognito/private mode to make sure you're not using the previous session. (If you're curious, try to log in Busy, then you'll see you need to enter active key again. But don't log in so that you don't save your session again)

  • Log in some app that only requires your posting key from the beginning, e.g., @steem-ua is such a good example. https://steem-ua.com/ has a function to show your UA score that requires login with your posting key.

    https://steem-ua.com smells like they'll only check your identity.

    which is true that they only require your posting key.

  • Now go to Busy.org then you'll use your saved Steemconnect session which you only entered your posting key as follows.

  • Click the saved session, then you can use Busy without any problem!

Step 2. (Method 2) Login with posting key after the initial authorization

I recommend this way if you're comfortable with changing the url manually.

  • First, make sure that you already authorized your posting right to an app, e.g., busy.app in Step 1.
  • Use a different browser or incognito/private mode to make sure you're not using the previous session. (If you're curious, try to log in Busy, then you'll see you need to enter active key again. But don't log in so that you don't save your session again)
  • Visit https://busy.org and click Log in. Then you'll see the same dialog before which will require you to enter your active key again.

  • Change scope= to scope=login which makes SC request posting key instead of active key. (Depending on apps, they may have something after scope=, e.g., scope=comment,delete_comment,comment_options where the app only specifies the necessary functions. In that case, delete it and make it into scope=login anyway. See the Behind the scene Section for more details.)

Change scope= to scope=login.

  • Then, you'll see the following login dialog that only requires posting key

    Using scope=login enable to use your posting key for login

  • Log out!
    What?? But this is necessary. Since SC only provided the functions you requested, which is login in this case, you cannot actually make a post or vote.

  • Now click Log in again, then you'll use your saved Steemconnect session which you only entered your posting key as follows.

  • Click the saved session, then you can use Busy without any problem!

List of posting right authorizations

If you have followed this tutorial, you may wonder if how many apps to which you have authorized your posting key.

https://steemd.com shows apps that have already been authorized to use posting right in Posting section.

  • The literals starting with STM is your public keys, don't worry about them :)

(Advanced: Unless you're an advanced user, you don't need to worry about threshold. Simply it means the minimum % that is required to use its right. In the above example, it's 12.5% and each app has the weight of 12.5%, so every app can use the posting right. The weight can be different for multisignature setup.)

Note: It is a very rare situation that you have authorized your active or owner right to others. If you're a normal user, you should suspect if your account has been compromised.

List of posting right authorizations / Posting right revoke via Steemconnect

If you want to know the apps you authorized vis Steemconnect, here is the way.

https://app.steemconnect.com/apps/authorized shows the authorized apps via SC

  • As you can see, if you click Revoke, you can revoke the authorization to the app. You need active key for this step. Of course, you can authorize again if you need, as in Step 1.
  • If you click Revoke All OAuth Tokens then, you will revoke all authorizations, which you may not want to use :)

https://app.steemconnect.com/dashboard

Posting right authorization using Steemconnect

This step is not needed for most users. If you don't know that you're doing, don't follow this step.

As you can imagine, SC provides an easy way for posting right authorization.

The url you need is https://app.steemconnect.com/authorize/@[APPNAME] where [APPNAME] is the name of the app account to which you authorize. See the example for @busy.app which busy.org uses.

https://app.steemconnect.com/authorize/@busy.app authorizes your posting right to busy.app

  • Click continue, then you need to enter your active key, as you did in Step 1.
(Advanced) Behind the scene

Please read this only if you're a little bit advanced and curious user :)

You may have too much got used to use your active key for login using SC, so you may wonder how using posting key is actually possible. Then you totally misunderstood the concept of posting right authorization. The posting right authorization actually means the authorized account can do whatever they want with the posting key on behalf of you.

That's how steemauto can vote while you're not even log in, and steempeak can do scheduled posts.

Then why apps require active keys again and again?

It's simply because SC doesn't provide a way to distinguish the logins for authorized and unauthorized apps. (Of course, they can't before login, but if SC provides a separate keyword, for instance scope=inherit or such, so that apps can use posting key to check whether posting right has already been authorized, and if so, inherit the posting right without asking active key.)

Why simply using scope=login doesn't work (i.e., why logout and login again needed) for the same app?

Basically, SC only provides the functions you requested, which itself makes sense to me. So even if you already authorized your posting right to busy.app, if you use scope=login, SC doesn't allow you to comment or vote. If you don't believe this, then try it yourself. Then you'll see the following error messages.

Without relogin with the stored session, login=scope doesn't allow you to vote or comment.

I'm not saying this itself is wrong. But there should be a way for users to log in only with posting key after the initial authorization. If you're worried about using your active key again and again, then use my methods 1 or 2 (whichever you want) in Step2 until SC3 will be released with the feature of login with posting key.

Proof of Work Done

This tutorial doesn't require coding (except for url modification), but https://github.com/economicstudio/ is my github account with which I made other Utopian contributions.

Sort:  

Thank you for your contribution @blockchainstudio.
After reviewing your tutorial we suggest the following points listed below:

  • The tutorial is quite interesting, even though it is not very technical. However, it has good tips for all Steemit users.

  • In your next tutorial try to improve the structure of your tutorial.

Thank you for your work in developing this tutorial.
Looking forward to your upcoming tutorials.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Chat with us on Discord.

[utopian-moderator]

Hi @portugalcoin, thank you for your review and suggestion!

Thank you for your review, @portugalcoin! Keep up the good work!

Korean: Steemconnect 인증의 문제점 + 스팀커넥트 유료화 가능성 등 변경사항 소식 에서 설명드린대로 현재 스팀커넥트 인증방식에 매번 active key를 요구하는 문제가 있는데 posting key로만 로그인할 수 있는 두가지 방법을 소개한 글입니다. 튜토리얼은 제가 이런 걸 쓰는 걸 무지 귀찮아 해서 처음인데 이미 작성된 내용이 좀 있고 제 개인적으로는 매우 중요한 문제라고 생각해서 소개해본 글입니다.

하나는 이미 이전 글에서 소개드린대로 다른 앱을 거쳐 우회하는 방법이고 그 방법이 마음에 안드시는 분 중 url정도는 자신이 고칠 수 있다 이런 분은 직접 해당앱에 로그인하실때 scope=login으로 변경해서 일단 로그인을 하고 다시 로그아웃한뒤ㅎㅎ 저장된 스팀커넥트 세션으로 다시 로그인하시면 제대로 이용하실 수 있습니다. 혹시라도 active key사용이 꺼려지시는 분은 이렇게 이용하시면 됩니다. 물론 이전 글에서 설명드린 것처럼 최초 1회 포스팅 권한 위임 절차는 필요합니다. 이는 스팀커넥트가 포스팅 키 자체를 매번 글쓰거나 보팅할때 마다 되묻지 않게하려면 포스팅키 자체를 저장해야하는데 이 것이 더 안좋은 방법이라고 개인적으로 생각하고 따라서 앱에 포스팅 권한을 위임하는 것으로 스팀커넥트 서버가 해킹되지 않는 이상 안전합니다. 그리고 포스팅권한을 위임하는 것이라 최대 피해가 원하지 않는 글 작성/수정, 보팅 수준이고 돈이 빠져나가는 일은 발생하지 않습니다.

반명 active key입력하다가 실수로 copy&paste를 잘 못한다던지 해서 유출되면 상당히 위험하죠. 언제 나올지 모르는 SC3에서 고칠거라니 기다려보는 수밖에요. 그전에도 민감하신 분은 소개해드린 방법들 쓰시면 됩니다.

v2에서는 불편하더라도 이렇게 우회해서 사용하는게 좋을 듯합니다. 감사합니다. SC3는 많이 기다려야하나요? steemconnect도 crowdin에 있어서 이번 달 안으로 번역하려고 준비 중이라서요. 아. 그리고 busy.org crowdin 코멘트 확인 부탁드립니다. 추가로, eSteem-surfer, eSteem-mobile은 번역 완료했습니다. 개선할 부분이 있다면 https://steemit.com/utopian-io/@dakeshi/esteem-surfer-esteem-mobile-korean-translation-1-573-words 이글에 댓글 남겨주시길 바랍니다.

안그래도 좀전에 유토피안 글 보았습니다. 팀구성된거 축하드리고 감사합니다! 좀전에 busy 로그인해서 답장 남겨두었습니다. 제가 크라우드인 번역쪽을 처음하고 자주 하는 일이 아니다보니 답장이 늦어져서 죄송합니다ㅠㅠ

팀도 구성되었으니 한번 포스팅도 해주세요~~

busy와 esteem도 이전에 하신것처럼 포스팅하셔서 사용자 의견 구하는 것이 좋을 것 같습니다. 아무래도 @dakeshi님께서 주도적으로 작업을 하시게 되실테니 저는 의견있으면 드리고 그런 식이 좋을 것 같습니다. 감사합니다!

저도 우회해서 사용해야겠습니다. 감사합니다.

은근 유용한 방법인 것 같습니다. 사실 저 부터가 키를 잘못에서 포스팅영역에 붙여넣은 적이 몇번 있어서ㅎㅎ

곰돌이가 @anpigon님의 소중한 댓글에 $0.018을 보팅해서 $0.005을 살려드리고 가요. 곰돌이가 지금까지 총 3269번 $39.147을 보팅해서 $40.723을 구했습니다. @gomdory 곰도뤼~

favcau님이 blockchainstudio님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
favcau님의 Suggestions category - Weekly report: #18

... blockchainstudio/td> 3 <td s...


@blockchainstudio님 곰돌이가 11.9배로 보팅해드리고 가요~! 영차~

짱짱맨 호출에 응답하였습니다.

zorba님이 blockchainstudio님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
zorba님의 [2019/2/21] 가장 빠른 해외 소식! 해외 스티미언 소모임 회원들의 글을 소개해드립니다1

...an님, 태국에서 jisoooh0202님, 미국 캘리포니아에서 livelyshawnee님, 영국에서 blockchainstudio gomdory님, 일본에서 sizuko님, 프랑스에서 eric66님, laylador님, 네덜란드에...

Hey, @blockchainstudio!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

botreporter님이 blockchainstudio님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
botreporter님의 Organic Trending List for Today 2/22/19

...r> 7 02-21 utopian- blockchainstudio/td> 66.97 $28.28 Link ...

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 60675.01
ETH 2605.91
USDT 1.00
SBD 2.64