{"action":"created","comment":{"url":"https://api.github.com/repos/dobtco/knowledge_base/pulls/comments/24777858","id":24777858,"diff_hunk":"@@ -0,0 +1,36 @@\n+---\n+title: Two-factor authentication\n+order: 5\n+---\n+\n+Make your account more secure by requiring an extra step for authentication. All you need is a cell phone and an application on your computer or mobile device.\n+\n+## Enabling two-factor authentication\n+\n+To enable two-factor authentication for your DOBT account, go to the \"My account\" tab on the DOBT Dashboard. Under \"Two-factor authentication,\" click the \"Enable?\" link.\n+\n+![enable 2fa](../images/enable_2fa.png)\n+\n+### Using the Authy Smartphone app\n+\n+To use Authy for two-factor authentication from your smartphone, download the Authy app. When your first launch it, you'll have to enter your phone number and email address. Verify your account by sending an SMS and then entering the registration code from that SMS into Authy.\n+\n+Next, add an \"authenticator account\" by pressing the plus button. Scan the QR code displayed on the DOBT Dashboard (or enter the code manually), enter \"DOBT\" as your account name, and press \"Done.\" Next, enter the validation code from Authy into the DOBT Dashboard and click \"Verify device.\" You should now see the \"You've enabled two-factor authentication!\" page. Make sure you write down your backup codes, so you can access your account if you lose your phone.\n+\n+### Using the Authy Chrome app\n+\n+The easiest way to use two-factor authentication without a smartphone is with the Authy Chrome app.\n+\n+[Download Authy](https://chrome.google.com/webstore/detail/authy/gaedmjdfmmahhbjefcbgaolhhanlaolb) and set it up by entering your phone number. Then, verify your phone number by sending an SMS and then entering the registration code from that SMS into Authy.\n+\n+Next, set up a master password for Authy under the \"Account\" tab.\n+\n+Now that your Authy account is set up, click \"Add Authenticator Account\" and enter the code displayed under step 2 from the DOBT Dashboard (it will be something like `xrijdtj44fdc26tdopxpg6yt`). Click \"Add Account,\" select a logo, and enter \"DOBT\" for the account name. You should now see a \"DOBT\" account under \"External Accounts\" in Authy.\n+\n+To finish setting up two-factor authentication for your DOBT account, close the main Authy window. You should then see a smaller Authy window: click \"DOBT\" and then \"Copy\" to copy your validation code. Enter that code into the DOBT Dashboard and click \"Verify device.\" You should now see the \"You've enabled two-factor authentication!\" page. Make sure you write down your backup codes so you can access your account if you lose your phone.\n+\n+## Signing in with two-factor authentication enabled\n+\n+To sign in to your DOBT account with two-factor authentication enabled, enter your email and password as you normally would. Then, open Authy (if you're using the Chrome app, you'll have to enter your master password), click \"DOBT,\" and copy your verification code. Next, enter that verification code into the DOBT Dashboard page and click \"Sign in.\"\n+\n+![login with 2fa](../images/2fa_login_verify.png)","path":"contents/articles/dashboard/accounts/two_factor_auth.md","position":36,"original_position":36,"commit_id":"51cd8b26f3a22ce71db97a15dd83a241a4f44236","original_commit_id":"51cd8b26f3a22ce71db97a15dd83a241a4f44236","user":{"login":"ajb","id":1270317,"avatar_url":"https://avatars.githubusercontent.com/u/1270317?v=3","gravatar_id":"","url":"https://api.github.com/users/ajb","html_url":"https://github.com/ajb","followers_url":"https://api.github.com/users/ajb/followers","following_url":"https://api.github.com/users/ajb/following{/other_user}","gists_url":"https://api.github.com/users/ajb/gists{/gist_id}","starred_url":"https://api.github.com/users/ajb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ajb/subscriptions","organizations_url":"https://api.github.com/users/ajb/orgs","repos_url":"https://api.github.com/users/ajb/repos","events_url":"https://api.github.com/users/ajb/events{/privacy}","received_events_url":"https://api.github.com/users/ajb/received_events","type":"User","site_admin":false},"body":"Needs a section on backup codes and how important they are.","created_at":"2015-02-16T21:44:03Z","updated_at":"2015-02-16T21:44:03Z","html_url":"https://github.com/dobtco/knowledge_base/pull/148#discussion_r24777858","pull_request_url":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148","_links":{"self":{"href":"https://api.github.com/repos/dobtco/knowledge_base/pulls/comments/24777858"},"html":{"href":"https://github.com/dobtco/knowledge_base/pull/148#discussion_r24777858"},"pull_request":{"href":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148"}}},"pull_request":{"url":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148","id":29392711,"html_url":"https://github.com/dobtco/knowledge_base/pull/148","diff_url":"https://github.com/dobtco/knowledge_base/pull/148.diff","patch_url":"https://github.com/dobtco/knowledge_base/pull/148.patch","issue_url":"https://api.github.com/repos/dobtco/knowledge_base/issues/148","number":148,"state":"open","locked":false,"title":"2fa docs","user":{"login":"aviv","id":2646916,"avatar_url":"https://avatars.githubusercontent.com/u/2646916?v=3","gravatar_id":"","url":"https://api.github.com/users/aviv","html_url":"https://github.com/aviv","followers_url":"https://api.github.com/users/aviv/followers","following_url":"https://api.github.com/users/aviv/following{/other_user}","gists_url":"https://api.github.com/users/aviv/gists{/gist_id}","starred_url":"https://api.github.com/users/aviv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aviv/subscriptions","organizations_url":"https://api.github.com/users/aviv/orgs","repos_url":"https://api.github.com/users/aviv/repos","events_url":"https://api.github.com/users/aviv/events{/privacy}","received_events_url":"https://api.github.com/users/aviv/received_events","type":"User","site_admin":false},"body":"not doing screenshots for authy, though the process *is* kind confusing/awkward IMO\n\nwill close #145","created_at":"2015-02-16T18:30:00Z","updated_at":"2015-02-16T21:44:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a723bacc99fc4062b7470f02afdac69e551ee97a","assignee":{"login":"aviv","id":2646916,"avatar_url":"https://avatars.githubusercontent.com/u/2646916?v=3","gravatar_id":"","url":"https://api.github.com/users/aviv","html_url":"https://github.com/aviv","followers_url":"https://api.github.com/users/aviv/followers","following_url":"https://api.github.com/users/aviv/following{/other_user}","gists_url":"https://api.github.com/users/aviv/gists{/gist_id}","starred_url":"https://api.github.com/users/aviv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aviv/subscriptions","organizations_url":"https://api.github.com/users/aviv/orgs","repos_url":"https://api.github.com/users/aviv/repos","events_url":"https://api.github.com/users/aviv/events{/privacy}","received_events_url":"https://api.github.com/users/aviv/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148/commits","review_comments_url":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148/comments","review_comment_url":"https://api.github.com/repos/dobtco/knowledge_base/pulls/comments/{number}","comments_url":"https://api.github.com/repos/dobtco/knowledge_base/issues/148/comments","statuses_url":"https://api.github.com/repos/dobtco/knowledge_base/statuses/51cd8b26f3a22ce71db97a15dd83a241a4f44236","head":{"label":"dobtco:2fa","ref":"2fa","sha":"51cd8b26f3a22ce71db97a15dd83a241a4f44236","user":{"login":"dobtco","id":3903909,"avatar_url":"https://avatars.githubusercontent.com/u/3903909?v=3","gravatar_id":"","url":"https://api.github.com/users/dobtco","html_url":"https://github.com/dobtco","followers_url":"https://api.github.com/users/dobtco/followers","following_url":"https://api.github.com/users/dobtco/following{/other_user}","gists_url":"https://api.github.com/users/dobtco/gists{/gist_id}","starred_url":"https://api.github.com/users/dobtco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dobtco/subscriptions","organizations_url":"https://api.github.com/users/dobtco/orgs","repos_url":"https://api.github.com/users/dobtco/repos","events_url":"https://api.github.com/users/dobtco/events{/privacy}","received_events_url":"https://api.github.com/users/dobtco/received_events","type":"Organization","site_admin":false},"repo":{"id":21949734,"name":"knowledge_base","full_name":"dobtco/knowledge_base","owner":{"login":"dobtco","id":3903909,"avatar_url":"https://avatars.githubusercontent.com/u/3903909?v=3","gravatar_id":"","url":"https://api.github.com/users/dobtco","html_url":"https://github.com/dobtco","followers_url":"https://api.github.com/users/dobtco/followers","following_url":"https://api.github.com/users/dobtco/following{/other_user}","gists_url":"https://api.github.com/users/dobtco/gists{/gist_id}","starred_url":"https://api.github.com/users/dobtco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dobtco/subscriptions","organizations_url":"https://api.github.com/users/dobtco/orgs","repos_url":"https://api.github.com/users/dobtco/repos","events_url":"https://api.github.com/users/dobtco/events{/privacy}","received_events_url":"https://api.github.com/users/dobtco/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dobtco/knowledge_base","description":"The DOBT knowledge base.","fork":false,"url":"https://api.github.com/repos/dobtco/knowledge_base","forks_url":"https://api.github.com/repos/dobtco/knowledge_base/forks","keys_url":"https://api.github.com/repos/dobtco/knowledge_base/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dobtco/knowledge_base/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dobtco/knowledge_base/teams","hooks_url":"https://api.github.com/repos/dobtco/knowledge_base/hooks","issue_events_url":"https://api.github.com/repos/dobtco/knowledge_base/issues/events{/number}","events_url":"https://api.github.com/repos/dobtco/knowledge_base/events","assignees_url":"https://api.github.com/repos/dobtco/knowledge_base/assignees{/user}","branches_url":"https://api.github.com/repos/dobtco/knowledge_base/branches{/branch}","tags_url":"https://api.github.com/repos/dobtco/knowledge_base/tags","blobs_url":"https://api.github.com/repos/dobtco/knowledge_base/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dobtco/knowledge_base/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dobtco/knowledge_base/git/refs{/sha}","trees_url":"https://api.github.com/repos/dobtco/knowledge_base/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dobtco/knowledge_base/statuses/{sha}","languages_url":"https://api.github.com/repos/dobtco/knowledge_base/languages","stargazers_url":"https://api.github.com/repos/dobtco/knowledge_base/stargazers","contributors_url":"https://api.github.com/repos/dobtco/knowledge_base/contributors","subscribers_url":"https://api.github.com/repos/dobtco/knowledge_base/subscribers","subscription_url":"https://api.github.com/repos/dobtco/knowledge_base/subscription","commits_url":"https://api.github.com/repos/dobtco/knowledge_base/commits{/sha}","git_commits_url":"https://api.github.com/repos/dobtco/knowledge_base/git/commits{/sha}","comments_url":"https://api.github.com/repos/dobtco/knowledge_base/comments{/number}","issue_comment_url":"https://api.github.com/repos/dobtco/knowledge_base/issues/comments/{number}","contents_url":"https://api.github.com/repos/dobtco/knowledge_base/contents/{+path}","compare_url":"https://api.github.com/repos/dobtco/knowledge_base/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dobtco/knowledge_base/merges","archive_url":"https://api.github.com/repos/dobtco/knowledge_base/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dobtco/knowledge_base/downloads","issues_url":"https://api.github.com/repos/dobtco/knowledge_base/issues{/number}","pulls_url":"https://api.github.com/repos/dobtco/knowledge_base/pulls{/number}","milestones_url":"https://api.github.com/repos/dobtco/knowledge_base/milestones{/number}","notifications_url":"https://api.github.com/repos/dobtco/knowledge_base/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dobtco/knowledge_base/labels{/name}","releases_url":"https://api.github.com/repos/dobtco/knowledge_base/releases{/id}","created_at":"2014-07-17T16:43:49Z","updated_at":"2015-02-12T00:05:54Z","pushed_at":"2015-02-16T21:33:47Z","git_url":"git://github.com/dobtco/knowledge_base.git","ssh_url":"git@github.com:dobtco/knowledge_base.git","clone_url":"https://github.com/dobtco/knowledge_base.git","svn_url":"https://github.com/dobtco/knowledge_base","homepage":"http://help.dobt.co/","size":15512,"stargazers_count":23,"watchers_count":23,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":11,"forks":1,"open_issues":11,"watchers":23,"default_branch":"master"}},"base":{"label":"dobtco:master","ref":"master","sha":"560af7c52a5b6013f98b5acf2d419b9be2b9e0b1","user":{"login":"dobtco","id":3903909,"avatar_url":"https://avatars.githubusercontent.com/u/3903909?v=3","gravatar_id":"","url":"https://api.github.com/users/dobtco","html_url":"https://github.com/dobtco","followers_url":"https://api.github.com/users/dobtco/followers","following_url":"https://api.github.com/users/dobtco/following{/other_user}","gists_url":"https://api.github.com/users/dobtco/gists{/gist_id}","starred_url":"https://api.github.com/users/dobtco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dobtco/subscriptions","organizations_url":"https://api.github.com/users/dobtco/orgs","repos_url":"https://api.github.com/users/dobtco/repos","events_url":"https://api.github.com/users/dobtco/events{/privacy}","received_events_url":"https://api.github.com/users/dobtco/received_events","type":"Organization","site_admin":false},"repo":{"id":21949734,"name":"knowledge_base","full_name":"dobtco/knowledge_base","owner":{"login":"dobtco","id":3903909,"avatar_url":"https://avatars.githubusercontent.com/u/3903909?v=3","gravatar_id":"","url":"https://api.github.com/users/dobtco","html_url":"https://github.com/dobtco","followers_url":"https://api.github.com/users/dobtco/followers","following_url":"https://api.github.com/users/dobtco/following{/other_user}","gists_url":"https://api.github.com/users/dobtco/gists{/gist_id}","starred_url":"https://api.github.com/users/dobtco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dobtco/subscriptions","organizations_url":"https://api.github.com/users/dobtco/orgs","repos_url":"https://api.github.com/users/dobtco/repos","events_url":"https://api.github.com/users/dobtco/events{/privacy}","received_events_url":"https://api.github.com/users/dobtco/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dobtco/knowledge_base","description":"The DOBT knowledge base.","fork":false,"url":"https://api.github.com/repos/dobtco/knowledge_base","forks_url":"https://api.github.com/repos/dobtco/knowledge_base/forks","keys_url":"https://api.github.com/repos/dobtco/knowledge_base/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dobtco/knowledge_base/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dobtco/knowledge_base/teams","hooks_url":"https://api.github.com/repos/dobtco/knowledge_base/hooks","issue_events_url":"https://api.github.com/repos/dobtco/knowledge_base/issues/events{/number}","events_url":"https://api.github.com/repos/dobtco/knowledge_base/events","assignees_url":"https://api.github.com/repos/dobtco/knowledge_base/assignees{/user}","branches_url":"https://api.github.com/repos/dobtco/knowledge_base/branches{/branch}","tags_url":"https://api.github.com/repos/dobtco/knowledge_base/tags","blobs_url":"https://api.github.com/repos/dobtco/knowledge_base/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dobtco/knowledge_base/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dobtco/knowledge_base/git/refs{/sha}","trees_url":"https://api.github.com/repos/dobtco/knowledge_base/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dobtco/knowledge_base/statuses/{sha}","languages_url":"https://api.github.com/repos/dobtco/knowledge_base/languages","stargazers_url":"https://api.github.com/repos/dobtco/knowledge_base/stargazers","contributors_url":"https://api.github.com/repos/dobtco/knowledge_base/contributors","subscribers_url":"https://api.github.com/repos/dobtco/knowledge_base/subscribers","subscription_url":"https://api.github.com/repos/dobtco/knowledge_base/subscription","commits_url":"https://api.github.com/repos/dobtco/knowledge_base/commits{/sha}","git_commits_url":"https://api.github.com/repos/dobtco/knowledge_base/git/commits{/sha}","comments_url":"https://api.github.com/repos/dobtco/knowledge_base/comments{/number}","issue_comment_url":"https://api.github.com/repos/dobtco/knowledge_base/issues/comments/{number}","contents_url":"https://api.github.com/repos/dobtco/knowledge_base/contents/{+path}","compare_url":"https://api.github.com/repos/dobtco/knowledge_base/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dobtco/knowledge_base/merges","archive_url":"https://api.github.com/repos/dobtco/knowledge_base/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dobtco/knowledge_base/downloads","issues_url":"https://api.github.com/repos/dobtco/knowledge_base/issues{/number}","pulls_url":"https://api.github.com/repos/dobtco/knowledge_base/pulls{/number}","milestones_url":"https://api.github.com/repos/dobtco/knowledge_base/milestones{/number}","notifications_url":"https://api.github.com/repos/dobtco/knowledge_base/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dobtco/knowledge_base/labels{/name}","releases_url":"https://api.github.com/repos/dobtco/knowledge_base/releases{/id}","created_at":"2014-07-17T16:43:49Z","updated_at":"2015-02-12T00:05:54Z","pushed_at":"2015-02-16T21:33:47Z","git_url":"git://github.com/dobtco/knowledge_base.git","ssh_url":"git@github.com:dobtco/knowledge_base.git","clone_url":"https://github.com/dobtco/knowledge_base.git","svn_url":"https://github.com/dobtco/knowledge_base","homepage":"http://help.dobt.co/","size":15512,"stargazers_count":23,"watchers_count":23,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":11,"forks":1,"open_issues":11,"watchers":23,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148"},"html":{"href":"https://github.com/dobtco/knowledge_base/pull/148"},"issue":{"href":"https://api.github.com/repos/dobtco/knowledge_base/issues/148"},"comments":{"href":"https://api.github.com/repos/dobtco/knowledge_base/issues/148/comments"},"review_comments":{"href":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148/comments"},"review_comment":{"href":"https://api.github.com/repos/dobtco/knowledge_base/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/dobtco/knowledge_base/pulls/148/commits"},"statuses":{"href":"https://api.github.com/repos/dobtco/knowledge_base/statuses/51cd8b26f3a22ce71db97a15dd83a241a4f44236"}}}}