create account

Utopian Registration: Backend - Social Login with Github, Facebook & LinkedIn by therealwolf

View this thread on: hive.blogpeakd.comecency.com
@therealwolf (edited)
$150.34
Utopian Registration: Backend - Social Login with Github, Facebook & LinkedIn
![Utopian_wolf.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1515786866/r8mdgrgtgk4gtzca511u.png)

Hello everybody,

this Contribution Post is part of the Utopian Registration-Project.

The goal for the Utopian Registration is, to allow People who are new to STEEM to create an Utopian ( STEEM ) - Account through Utopian itself (and not how it is currently handled, through STEEMIT).

And one of the most important groundworks for this, is the actual login with a Github, Facebook or LinkedIn account.

In this Contribution-Post I'll take you through the changes I've made to the *utopian-api-backend* and what is working right now.

You can check out the changes I made to the frontend in <a href="https://utopian.io/utopian-io/@therealwolf/utopian-registration-frontend-social-login-with-github-facebook-and-linkedin">this post.</a>

<h1>The Pull-Request</h1>

![image.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1515542045/kzsaqxkk8sxisquhtgtr.png)

You can find the pull-request here: <a href="https://github.com/utopian-io/api.utopian.io/commit/ef5864af7ce9aec2829db15d03ebeb3aaa7c8cad">Pull Request</a>

<h1>The Logic</h1>

While the frontend was pretty much straight forward - the backend needed a bit of creativity.

The reason for this is, because there are happening several things when a user logs in via social login.

<h2>1.) Get User</h2>

After some internal logic with access_tokens and oAuth2 where the user is getting logged in - we receive a code which can be used to retrive the data from the social provider - Github, Facebook and linkedin. (However, LinkedIn  gave some problems so it isn't used right now).

<h2>2.) Analyse and create User in DB</h2>

This data was then used to rate the user and to see if he was already verified by the social provider - for example through 2FA or something similar and then a temporary user is created - which is for keeping track of the current status of the user.

For example: if the user has already created a STEEM account or if he still needs to verify SMS / Email. And some data about the user.

<h2>3.) Redirect User</h2>

After this, the user will be redirected on the frontend to the right site. 

Which means - if he has verified Email & SMS OR Email & Social-Account (2FA in Github e.g.) then he gets redirected to the Steem-Account Name-Selection.

If he hasn't verified anything - then he gets redirected to email verification.

<h1>What's next?</h1>

Next up for me is the email verification and SMS verification. While those are both things that I also haven't done before - I'm happy for the challenge.

So - until then,

-Wolf

<br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@therealwolf/utopian-registration-backend-social-login-with-github-facebook-and-linkedin">Utopian.io -  Rewarding Open Source Contributors</a></em><hr/>
馃憤  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authortherealwolf
permlinkutopian-registration-backend-social-login-with-github-facebook-and-linkedin
categoryutopian-io
json_metadata"{"community":"utopian","app":"utopian/1.0.0","format":"markdown","repository":{"id":106805299,"name":"api.utopian.io","full_name":"utopian-io/api.utopian.io","html_url":"https://github.com/utopian-io/api.utopian.io","fork":false,"owner":{"login":"utopian-io"}},"pullRequests":[{"url":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/65","id":161947393,"html_url":"https://github.com/utopian-io/api.utopian.io/pull/65","diff_url":"https://github.com/utopian-io/api.utopian.io/pull/65.diff","patch_url":"https://github.com/utopian-io/api.utopian.io/pull/65.patch","issue_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/65","number":65,"state":"closed","locked":false,"title":"Utopian Registration Backend - Social Login","user":{"login":"therealwolf42","id":31614097,"avatar_url":"https://avatars2.githubusercontent.com/u/31614097?v=4","gravatar_id":"","url":"https://api.github.com/users/therealwolf42","html_url":"https://github.com/therealwolf42","followers_url":"https://api.github.com/users/therealwolf42/followers","following_url":"https://api.github.com/users/therealwolf42/following{/other_user}","gists_url":"https://api.github.com/users/therealwolf42/gists{/gist_id}","starred_url":"https://api.github.com/users/therealwolf42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/therealwolf42/subscriptions","organizations_url":"https://api.github.com/users/therealwolf42/orgs","repos_url":"https://api.github.com/users/therealwolf42/repos","events_url":"https://api.github.com/users/therealwolf42/events{/privacy}","received_events_url":"https://api.github.com/users/therealwolf42/received_events","type":"User","site_admin":false},"body":"Works but the question is now if we use the UTOPIAN_GITHUB client_id & secret or a new one for the registration.\r\n\r\nFacebbok & LinkedIn also have to be created, while LinkedIn currently doesn't work due to API Problems while getting the User. That's why the frontend currently only supports Github & Facebook.\r\n\r\nAlso - this pull request doesn't do anything useful by itself other than logging the user in and creating a pending_user in DB, but I wanted to make seperate pull requests for the individual models that are part of the registration process.","created_at":"2018-01-09T18:47:10Z","updated_at":"2018-01-09T19:38:36Z","closed_at":"2018-01-09T19:38:22Z","merged_at":"2018-01-09T19:38:22Z","merge_commit_sha":"ef5864af7ce9aec2829db15d03ebeb3aaa7c8cad","assignee":null,"assignees":[],"requested_reviewers":[{"login":"diegopucci","id":4544461,"avatar_url":"https://avatars1.githubusercontent.com/u/4544461?v=4","gravatar_id":"","url":"https://api.github.com/users/diegopucci","html_url":"https://github.com/diegopucci","followers_url":"https://api.github.com/users/diegopucci/followers","following_url":"https://api.github.com/users/diegopucci/following{/other_user}","gists_url":"https://api.github.com/users/diegopucci/gists{/gist_id}","starred_url":"https://api.github.com/users/diegopucci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diegopucci/subscriptions","organizations_url":"https://api.github.com/users/diegopucci/orgs","repos_url":"https://api.github.com/users/diegopucci/repos","events_url":"https://api.github.com/users/diegopucci/events{/privacy}","received_events_url":"https://api.github.com/users/diegopucci/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/65/commits","review_comments_url":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/65/comments","review_comment_url":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/65/comments","statuses_url":"https://api.github.com/repos/utopian-io/api.utopian.io/statuses/11533e40ef2db7077ab2b935af484dc12bdf32fb","head":{"label":"utopian-io:reg-backend","ref":"reg-backend","sha":"11533e40ef2db7077ab2b935af484dc12bdf32fb","user":{"login":"utopian-io","id":18612062,"avatar_url":"https://avatars2.githubusercontent.com/u/18612062?v=4","gravatar_id":"","url":"https://api.github.com/users/utopian-io","html_url":"https://github.com/utopian-io","followers_url":"https://api.github.com/users/utopian-io/followers","following_url":"https://api.github.com/users/utopian-io/following{/other_user}","gists_url":"https://api.github.com/users/utopian-io/gists{/gist_id}","starred_url":"https://api.github.com/users/utopian-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/utopian-io/subscriptions","organizations_url":"https://api.github.com/users/utopian-io/orgs","repos_url":"https://api.github.com/users/utopian-io/repos","events_url":"https://api.github.com/users/utopian-io/events{/privacy}","received_events_url":"https://api.github.com/users/utopian-io/received_events","type":"Organization","site_admin":false},"repo":{"id":106805299,"name":"api.utopian.io","full_name":"utopian-io/api.utopian.io","owner":{"login":"utopian-io","id":18612062,"avatar_url":"https://avatars2.githubusercontent.com/u/18612062?v=4","gravatar_id":"","url":"https://api.github.com/users/utopian-io","html_url":"https://github.com/utopian-io","followers_url":"https://api.github.com/users/utopian-io/followers","following_url":"https://api.github.com/users/utopian-io/following{/other_user}","gists_url":"https://api.github.com/users/utopian-io/gists{/gist_id}","starred_url":"https://api.github.com/users/utopian-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/utopian-io/subscriptions","organizations_url":"https://api.github.com/users/utopian-io/orgs","repos_url":"https://api.github.com/users/utopian-io/repos","events_url":"https://api.github.com/users/utopian-io/events{/privacy}","received_events_url":"https://api.github.com/users/utopian-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/utopian-io/api.utopian.io","description":"Node API for Utopian.io - Utopian rewards open-source contributors for hard work!","fork":false,"url":"https://api.github.com/repos/utopian-io/api.utopian.io","forks_url":"https://api.github.com/repos/utopian-io/api.utopian.io/forks","keys_url":"https://api.github.com/repos/utopian-io/api.utopian.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/utopian-io/api.utopian.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/utopian-io/api.utopian.io/teams","hooks_url":"https://api.github.com/repos/utopian-io/api.utopian.io/hooks","issue_events_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/events{/number}","events_url":"https://api.github.com/repos/utopian-io/api.utopian.io/events","assignees_url":"https://api.github.com/repos/utopian-io/api.utopian.io/assignees{/user}","branches_url":"https://api.github.com/repos/utopian-io/api.utopian.io/branches{/branch}","tags_url":"https://api.github.com/repos/utopian-io/api.utopian.io/tags","blobs_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/utopian-io/api.utopian.io/statuses/{sha}","languages_url":"https://api.github.com/repos/utopian-io/api.utopian.io/languages","stargazers_url":"https://api.github.com/repos/utopian-io/api.utopian.io/stargazers","contributors_url":"https://api.github.com/repos/utopian-io/api.utopian.io/contributors","subscribers_url":"https://api.github.com/repos/utopian-io/api.utopian.io/subscribers","subscription_url":"https://api.github.com/repos/utopian-io/api.utopian.io/subscription","commits_url":"https://api.github.com/repos/utopian-io/api.utopian.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/utopian-io/api.utopian.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/utopian-io/api.utopian.io/contents/{+path}","compare_url":"https://api.github.com/repos/utopian-io/api.utopian.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/utopian-io/api.utopian.io/merges","archive_url":"https://api.github.com/repos/utopian-io/api.utopian.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/utopian-io/api.utopian.io/downloads","issues_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues{/number}","pulls_url":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls{/number}","milestones_url":"https://api.github.com/repos/utopian-io/api.utopian.io/milestones{/number}","notifications_url":"https://api.github.com/repos/utopian-io/api.utopian.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/utopian-io/api.utopian.io/labels{/name}","releases_url":"https://api.github.com/repos/utopian-io/api.utopian.io/releases{/id}","deployments_url":"https://api.github.com/repos/utopian-io/api.utopian.io/deployments","created_at":"2017-10-13T09:32:24Z","updated_at":"2017-12-29T17:18:37Z","pushed_at":"2018-01-12T19:56:08Z","git_url":"git://github.com/utopian-io/api.utopian.io.git","ssh_url":"git@github.com:utopian-io/api.utopian.io.git","clone_url":"https://github.com/utopian-io/api.utopian.io.git","svn_url":"https://github.com/utopian-io/api.utopian.io","homepage":"https://utopian.io/","size":911,"stargazers_count":17,"watchers_count":17,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"archived":false,"open_issues_count":6,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":20,"open_issues":6,"watchers":17,"default_branch":"master"}},"base":{"label":"utopian-io:master","ref":"master","sha":"3c718c4ac71f2b7e2a26b49d35fa637b42c6f147","user":{"login":"utopian-io","id":18612062,"avatar_url":"https://avatars2.githubusercontent.com/u/18612062?v=4","gravatar_id":"","url":"https://api.github.com/users/utopian-io","html_url":"https://github.com/utopian-io","followers_url":"https://api.github.com/users/utopian-io/followers","following_url":"https://api.github.com/users/utopian-io/following{/other_user}","gists_url":"https://api.github.com/users/utopian-io/gists{/gist_id}","starred_url":"https://api.github.com/users/utopian-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/utopian-io/subscriptions","organizations_url":"https://api.github.com/users/utopian-io/orgs","repos_url":"https://api.github.com/users/utopian-io/repos","events_url":"https://api.github.com/users/utopian-io/events{/privacy}","received_events_url":"https://api.github.com/users/utopian-io/received_events","type":"Organization","site_admin":false},"repo":{"id":106805299,"name":"api.utopian.io","full_name":"utopian-io/api.utopian.io","owner":{"login":"utopian-io","id":18612062,"avatar_url":"https://avatars2.githubusercontent.com/u/18612062?v=4","gravatar_id":"","url":"https://api.github.com/users/utopian-io","html_url":"https://github.com/utopian-io","followers_url":"https://api.github.com/users/utopian-io/followers","following_url":"https://api.github.com/users/utopian-io/following{/other_user}","gists_url":"https://api.github.com/users/utopian-io/gists{/gist_id}","starred_url":"https://api.github.com/users/utopian-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/utopian-io/subscriptions","organizations_url":"https://api.github.com/users/utopian-io/orgs","repos_url":"https://api.github.com/users/utopian-io/repos","events_url":"https://api.github.com/users/utopian-io/events{/privacy}","received_events_url":"https://api.github.com/users/utopian-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/utopian-io/api.utopian.io","description":"Node API for Utopian.io - Utopian rewards open-source contributors for hard work!","fork":false,"url":"https://api.github.com/repos/utopian-io/api.utopian.io","forks_url":"https://api.github.com/repos/utopian-io/api.utopian.io/forks","keys_url":"https://api.github.com/repos/utopian-io/api.utopian.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/utopian-io/api.utopian.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/utopian-io/api.utopian.io/teams","hooks_url":"https://api.github.com/repos/utopian-io/api.utopian.io/hooks","issue_events_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/events{/number}","events_url":"https://api.github.com/repos/utopian-io/api.utopian.io/events","assignees_url":"https://api.github.com/repos/utopian-io/api.utopian.io/assignees{/user}","branches_url":"https://api.github.com/repos/utopian-io/api.utopian.io/branches{/branch}","tags_url":"https://api.github.com/repos/utopian-io/api.utopian.io/tags","blobs_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/utopian-io/api.utopian.io/statuses/{sha}","languages_url":"https://api.github.com/repos/utopian-io/api.utopian.io/languages","stargazers_url":"https://api.github.com/repos/utopian-io/api.utopian.io/stargazers","contributors_url":"https://api.github.com/repos/utopian-io/api.utopian.io/contributors","subscribers_url":"https://api.github.com/repos/utopian-io/api.utopian.io/subscribers","subscription_url":"https://api.github.com/repos/utopian-io/api.utopian.io/subscription","commits_url":"https://api.github.com/repos/utopian-io/api.utopian.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/utopian-io/api.utopian.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/utopian-io/api.utopian.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/utopian-io/api.utopian.io/contents/{+path}","compare_url":"https://api.github.com/repos/utopian-io/api.utopian.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/utopian-io/api.utopian.io/merges","archive_url":"https://api.github.com/repos/utopian-io/api.utopian.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/utopian-io/api.utopian.io/downloads","issues_url":"https://api.github.com/repos/utopian-io/api.utopian.io/issues{/number}","pulls_url":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls{/number}","milestones_url":"https://api.github.com/repos/utopian-io/api.utopian.io/milestones{/number}","notifications_url":"https://api.github.com/repos/utopian-io/api.utopian.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/utopian-io/api.utopian.io/labels{/name}","releases_url":"https://api.github.com/repos/utopian-io/api.utopian.io/releases{/id}","deployments_url":"https://api.github.com/repos/utopian-io/api.utopian.io/deployments","created_at":"2017-10-13T09:32:24Z","updated_at":"2017-12-29T17:18:37Z","pushed_at":"2018-01-12T19:56:08Z","git_url":"git://github.com/utopian-io/api.utopian.io.git","ssh_url":"git@github.com:utopian-io/api.utopian.io.git","clone_url":"https://github.com/utopian-io/api.utopian.io.git","svn_url":"https://github.com/utopian-io/api.utopian.io","homepage":"https://utopian.io/","size":911,"stargazers_count":17,"watchers_count":17,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"archived":false,"open_issues_count":6,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":20,"open_issues":6,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/65"},"html":{"href":"https://github.com/utopian-io/api.utopian.io/pull/65"},"issue":{"href":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/65"},"comments":{"href":"https://api.github.com/repos/utopian-io/api.utopian.io/issues/65/comments"},"review_comments":{"href":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/65/comments"},"review_comment":{"href":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/utopian-io/api.utopian.io/pulls/65/commits"},"statuses":{"href":"https://api.github.com/repos/utopian-io/api.utopian.io/statuses/11533e40ef2db7077ab2b935af484dc12bdf32fb"}},"author_association":"COLLABORATOR"}],"platform":"github","type":"development","tags":["utopian-io","steem","steemdev","dev","steemit"],"users":["therealwolf"],"links":["https://res.cloudinary.com/hpiynhbhq/image/upload/v1515786866/r8mdgrgtgk4gtzca511u.png","https://res.cloudinary.com/hpiynhbhq/image/upload/v1515542045/kzsaqxkk8sxisquhtgtr.png"],"image":["https://res.cloudinary.com/hpiynhbhq/image/upload/v1515786866/r8mdgrgtgk4gtzca511u.png","https://res.cloudinary.com/hpiynhbhq/image/upload/v1515542045/kzsaqxkk8sxisquhtgtr.png"],"moderator":{"account":"ms10398","time":"2018-01-12T20:20:07.500Z","reviewed":true,"pending":false,"flagged":false}}"
created2018-01-12 20:01:21
last_update2018-01-13 08:55:33
depth0
children4
last_payout2018-01-19 20:01:21
cashout_time1969-12-31 23:59:59
total_payout_value110.122 HBD
curator_payout_value40.218 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,844
author_reputation582,203,775,583,778
root_title"Utopian Registration: Backend - Social Login with Github, Facebook & LinkedIn"
beneficiaries
0.
accountutopian.pay
weight2,500
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id29,078,604
net_rshares23,660,816,846,876
author_curate_reward""
vote details (63)
@ms10398
Thank you for the contribution. It has been approved.

You can contact us on [Discord](https://discord.gg/UCvqCsx).
**[[utopian-moderator]](https://utopian.io/moderators)**
馃憤  
properties (23)
authorms10398
permlinkre-therealwolf-utopian-registration-backend-social-login-with-github-facebook-and-linkedin-20180112t202013134z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"}
created2018-01-12 20:20:12
last_update2018-01-12 20:20:12
depth1
children0
last_payout2018-01-19 20:20:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length172
author_reputation27,572,487,973,390
root_title"Utopian Registration: Backend - Social Login with Github, Facebook & LinkedIn"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id29,081,896
net_rshares2,058,619,273
author_curate_reward""
vote details (1)
@steemengineteam
Hello therealwolf!

We have found your post and the @SteemEngineTeam wants you aboard!

 We are the fastest growing content, vote and follower sharing community on Steem. Please see our [introduction post](https://steemit.com/steemit/@steemengineteam/more-followers-more-votes-steemengine) for details on how to join and start earning more votes!
馃憥  
properties (23)
authorsteemengineteam
permlinkre-utopian-registration-backend-social-login-with-github-facebook-and-linkedin-20180112t204751
categoryutopian-io
json_metadata""
created2018-01-12 20:47:51
last_update2018-01-12 20:47:51
depth1
children0
last_payout2018-01-19 20:47:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length346
author_reputation78,572,684,397,658
root_title"Utopian Registration: Backend - Social Login with Github, Facebook & LinkedIn"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id29,086,227
net_rshares-19,941,625,292
author_curate_reward""
vote details (1)
@ugetfunded
What was the core reason behind this change? Outreach?
properties (22)
authorugetfunded
permlinkre-therealwolf-utopian-registration-backend-social-login-with-github-facebook-and-linkedin-20180112t201224059z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"app":"steemit/0.1"}
created2018-01-12 20:12:24
last_update2018-01-12 20:12:24
depth1
children0
last_payout2018-01-19 20:12:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length54
author_reputation13,570,875,538,010
root_title"Utopian Registration: Backend - Social Login with Github, Facebook & LinkedIn"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id29,080,513
net_rshares0
@utopian-io
### Hey @therealwolf I am @utopian-io. I have just upvoted you!
#### Achievements
- Seems like you contribute quite often. AMAZING!
#### Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. <a href="https://discord.gg/zTrEMqB">Participate on Discord</a>. Lets GROW TOGETHER!
- <a href="https://v2.steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1">Vote for my Witness With SteemConnect</a>
- <a href="https://v2.steemconnect.com/sign/account-witness-proxy?proxy=utopian-io&approve=1">Proxy vote to Utopian Witness with SteemConnect</a>
- Or vote/proxy on <a href="https://steemit.com/~witnesses">Steemit Witnesses</a>

[![mooncryption-utopian-witness-gif](https://steemitimages.com/DQmYPUuQRptAqNBCQRwQjKWAqWU3zJkL3RXVUtEKVury8up/mooncryption-s-utopian-io-witness-gif.gif)](https://steemit.com/~witnesses)

**Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x**
馃憤  
properties (23)
authorutopian-io
permlinkre-therealwolf-utopian-registration-backend-social-login-with-github-facebook-and-linkedin-20180113t162748286z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"}
created2018-01-13 16:27:48
last_update2018-01-13 16:27:48
depth1
children0
last_payout2018-01-20 16:27:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,009
author_reputation152,955,367,999,756
root_title"Utopian Registration: Backend - Social Login with Github, Facebook & LinkedIn"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id29,264,324
net_rshares2,100,631,911
author_curate_reward""
vote details (1)