[호기심] 스팀잇은 어떻게 자동로그인이 가능한가?

in #kr7 years ago (edited)

curiosity
안녕하세요 @supergiant입니다.

스팀잇 사용 중 계속 궁금했던 점인데 최근 알게되어 전파 포스팅을 작성합니다.

사례1

김대리는 스팀잇에 로그인한 후 로그아웃을 하지 않고 브라우저를 닫거나, 컴퓨터를 끄고 다음날에 스팀잇 사이트에 접속해도 방금 쓰던 것 처럼 로그인 되어 있는 상태로 웹페이지가 뜨는게 신기했습니다. 보통의 웹사이트는 일정 시간만 지나도 ID/비밀번호를 다시 입력해야 하고 특히 컴퓨터를 껐다 켜면 당연히 로그인 다시 해야 했는데 스팀잇 뭔가요?

사례2

이과장은 포스팅 작성버튼을 누르고 글을 쓰다가 지인이 신규 포스팅을 올렸다는 소식을 듣고는 글쓰기를 멈추고 지인의 블로그에 방문하여 답글 달고 보팅하고 심지어 스팀잇 로그아웃을 했다가 한숨 자고 와서 로그인 하고 글 작성 버튼을 다시 눌렀는데 작성하던 내용이 그대로 있습니다 어떻게 된건가요?

사례3

프로댓글러 K씨는 A에게 댓글을 달다가 그냥 빠져나와 B에게 댓글을 달고 와서 A에게 댓글을 달려고 A의 글을 눌렀는데 아까 작성하던 그대로 남아 있었습니다 그리고 글에 보팅할 때 보팅바 비율과 댓글에 보팅할 때 눌렀던 비율이 어딘가에 기록되었는지 다음 보팅할 때 그대로 뜹니다 어떻게 가능한건가요?

비교적 후진 UI로 질타를 받고 있던 스팀잇 공식사이트가 알고보니 기본은 하고 있었습니다

위의 3가지 사례가 가능한 이유는 바로 Local Storage 때문입니다

"누구냐 넌?"

Local Storage

웹사이트의 정보를 저장하기 위해 서버를 사용할 수도 있지만 클라이언트의 저장 공간도 사용할 수 있다. 기존에는 일반인도 알고 있는 쿠키(cookie)에 많이 저장 했었는데 HTML5에서는 Local Storage와 Session Storage라는 쉽고 간단한 클라이언트 저장소를 제공한다

정의나 기술적인 내용은 인터넷에 많이 설명되어 있으니 패스하구요 일단 어떻게 생겼는지 보러가겠습니다

PC의 크롬브라우저에서 F12버튼을 누르면 개발자도구라는게 뜹니다. 아래 빨간색 사각형 영역인데요 사각형 오른쪽 위쯤에 Application을 누릅니다.

그럼 아래와 같은 이상한게 뜨는데요 좌측에 빨간색으로 표시된 부분에 Local Storage가 보입니다.

로컬 스토리지를 클릭하면 아래에 스팀잇이 사용하는 저장공간인 https://steemit.com이 보이고 여길 눌러보면 위의 사례에 해당하는 값들을 확인할 수 있습니다.

  • autopost2: 로그인에 성공하면 기록 로그아웃 하면 사라진다 자동로그인에 사용
  • replyEditorData-submitStory: 포스팅 작성 내용 임시저장
  • replyEditorData-postFull~ 과 showEditor-postFull~: 댓글의 임시저장
  • voteWeight-supergiant: 글에 대한 최근 보팅 값
  • voteWeight-supergiant-comment: 댓글에 대한 최근 보팅 값
  • replyEditorData-autoVote-story: 이 글에 보팅하기 체크시 yes

위 개발자 도구를 켜놓은 상태로 스팀잇에서 이것저것 하다보면 실시간으로 값이 바뀌는것을 확인할 수 있습니다 재미있지 않나요?

마지막 호기심으로 0.2%보팅을 한번 해보겠습니다.
voteWeight-supergiant-comment 값이 10000일때 100%보팅이니까 20으로 바꾸면 0.2%가 가능하지 않을까요?

역시 되는군요 앞으로 스팀잇 사용자가 1000만명 이상이 되면 소수점 단위로 나눠서 보팅하는 날이 온다고 하던데 스팀잇은 이미 대비를 해 놓았습니다.

  • 결론: 스팀잇 공식 사이트는 Local Storage를 사용하여 사용자 편의성을 높이고 있다

저만 궁금해 했던걸 써 놓은건지 모르겠네요 내용이 재밌진 않을거 같습니다. 어쨌든.. 가까운 미래에 저도 Local Storage를 이용해 여러분이 좋아하실 만한 프로그램을 하나 만들어 공개할 예정이니 기대해주세요. 읽어주셔서 감사합니다

Sort:  

와우..

steemit 자동로그인, 로컬스토리지, 소숫점 보팅 방법
스팀 개발자들의 치밀함에도 다시 감탄합니다.

너무 너무 많은 것 새로 배워갑니다.

자세하게 읽으셨군요
감사합니다 ㅎㅎ

그래서 인지 오히려
방심하고 인터넷 사용 삭제를 아무렇지도 않게
저지르고 태연하게 로그되겠지
라고 생각한 제가 있네요 ㅋㅋㅋㅋ

덕분에 잘 보고 갑니다.

P.S
0.1단위의 보팅이라;;;

신기한게 autopost2 value값 복사했다가
브라우저 캐시 삭제해도 저 값만 Local Storage에 넣고
스팀잇 새로고침하면 로그인 되더라구요

읽어주셔서 감사합니다 ㅎㅎ

그러면 해킹의 염려가 증가되는 상황 아닌가요?

여러사람 사용하는 컴퓨터이거나 꺼림직하면 로그아웃하는 습관 들이시면 될거 같아요

그렇군요..
좋은 팁 잘 받아갑니다.

그러지않아도 저도 궁금했던 부분인데 덕분에 잘 알게 됐어요.
직접 프로그램도 제작하신다니 대단하시네요.
좋은 프로그램 만드실 것 같습니다.^^

읽어주셔서 감사합니다
간단하지만 꼭 필요한 프로그램이라 맘에 들꺼예요 ㅎㅎ

좋은정보 감사합니다
잘읽고갑니다
종종들리고싶어 보팅하고 팔로우합니다

감사합니다
글을 많이 쓰진 않지만 종종 들러주세요

프로그램을 만들어 공개한다니.. 대단하네요..
기대할게요

저는 컴퓨터 제가 쓰는거에 로그인 저장해놔서 ^^

좋은 꿈 꾸세요

기대하셔도 좋습니다 ㅎㅎ
커밍순~

우앗! 0.2% 보팅이 1달러가 되는 날까지 스팀 존버~~

그때가되면 지금사용자 모두 큰손이겠어요 ㅎㅎ

정말 대단하신거 같아요^_^

감사합니다 보잘것 없는 지식이예요 ㅎㅎ

유익한 글 잘 읽고 갑니다!!

유익했다니 다행입니다 ㅎㅎ

정말 세밀한 분석 감사드립니다

storage에 대해 더 자세하게 쓰면 일반분들은
지루해할까봐 생략했어요 ㅎㅎ
감사합니다

대충 이런식으로 하지 않을까 짐작만 했는데 실제 그렇군요 ㅎㅎ

안녕하세요 역시 저희 짐작대로였어요 ㅎㅎ
만드신 계정생성 유틸리티 몇번 사용해봤습니다

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 59993.26
ETH 2312.53
USDT 1.00
SBD 2.49