{"action":"created","issue":{"url":"https://api.github.com/repos/18F/identity-idp/issues/99","repository_url":"https://api.github.com/repos/18F/identity-idp","labels_url":"https://api.github.com/repos/18F/identity-idp/issues/99/labels{/name}","comments_url":"https://api.github.com/repos/18F/identity-idp/issues/99/comments","events_url":"https://api.github.com/repos/18F/identity-idp/issues/99/events","html_url":"https://github.com/18F/identity-idp/pull/99","id":155562755,"number":99,"title":"Remove support for multiple second factors","user":{"login":"amoose","id":1328699,"avatar_url":"https://avatars.githubusercontent.com/u/1328699?v=3","gravatar_id":"","url":"https://api.github.com/users/amoose","html_url":"https://github.com/amoose","followers_url":"https://api.github.com/users/amoose/followers","following_url":"https://api.github.com/users/amoose/following{/other_user}","gists_url":"https://api.github.com/users/amoose/gists{/gist_id}","starred_url":"https://api.github.com/users/amoose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amoose/subscriptions","organizations_url":"https://api.github.com/users/amoose/orgs","repos_url":"https://api.github.com/users/amoose/repos","events_url":"https://api.github.com/users/amoose/events{/privacy}","received_events_url":"https://api.github.com/users/amoose/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/18F/identity-idp/labels/ready%20for%20review","name":"ready for review","color":"0e8a16"}],"state":"closed","locked":false,"assignee":{"login":"sbc100","id":515813,"avatar_url":"https://avatars.githubusercontent.com/u/515813?v=3","gravatar_id":"","url":"https://api.github.com/users/sbc100","html_url":"https://github.com/sbc100","followers_url":"https://api.github.com/users/sbc100/followers","following_url":"https://api.github.com/users/sbc100/following{/other_user}","gists_url":"https://api.github.com/users/sbc100/gists{/gist_id}","starred_url":"https://api.github.com/users/sbc100/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbc100/subscriptions","organizations_url":"https://api.github.com/users/sbc100/orgs","repos_url":"https://api.github.com/users/sbc100/repos","events_url":"https://api.github.com/users/sbc100/events{/privacy}","received_events_url":"https://api.github.com/users/sbc100/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/18F/identity-idp/milestones/6","html_url":"https://github.com/18F/identity-idp/milestones/Sprint%206","labels_url":"https://api.github.com/repos/18F/identity-idp/milestones/6/labels","id":1772032,"number":6,"title":"Sprint 6","description":"","creator":{"login":"amoose","id":1328699,"avatar_url":"https://avatars.githubusercontent.com/u/1328699?v=3","gravatar_id":"","url":"https://api.github.com/users/amoose","html_url":"https://github.com/amoose","followers_url":"https://api.github.com/users/amoose/followers","following_url":"https://api.github.com/users/amoose/following{/other_user}","gists_url":"https://api.github.com/users/amoose/gists{/gist_id}","starred_url":"https://api.github.com/users/amoose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amoose/subscriptions","organizations_url":"https://api.github.com/users/amoose/orgs","repos_url":"https://api.github.com/users/amoose/repos","events_url":"https://api.github.com/users/amoose/events{/privacy}","received_events_url":"https://api.github.com/users/amoose/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":3,"state":"open","created_at":"2016-05-17T16:25:26Z","updated_at":"2016-05-18T18:01:47Z","due_on":"2016-05-28T07:00:00Z","closed_at":null},"comments":1,"created_at":"2016-05-18T17:51:13Z","updated_at":"2016-05-18T18:02:09Z","closed_at":"2016-05-18T18:01:47Z","pull_request":{"url":"https://api.github.com/repos/18F/identity-idp/pulls/99","html_url":"https://github.com/18F/identity-idp/pull/99","diff_url":"https://github.com/18F/identity-idp/pull/99.diff","patch_url":"https://github.com/18F/identity-idp/pull/99.patch"},"body":"This change removes support for OTP via email and multiple\r\nsecond factors in general.  SMS is now the only method of OTP\r\ndelivery.\r\n\r\nThis simplifies the schema and removes the second_factors table.\r\n\r\nWhy:\r\n\r\nOTP via email as second factor is bad idea since email is the\r\nrecovery mechanism for the first factor.\r\n\r\nSupporting multiple seconds factors is nice, but second factors\r\nare not generic enough to simply be driven by a database table.\r\nCurrently we only support SMS as a second factor so we can\r\nkeep the code simple by removing the addition database and\r\nsupporting code."},"comment":{"url":"https://api.github.com/repos/18F/identity-idp/issues/comments/220109247","html_url":"https://github.com/18F/identity-idp/pull/99#issuecomment-220109247","issue_url":"https://api.github.com/repos/18F/identity-idp/issues/99","id":220109247,"user":{"login":"amoose","id":1328699,"avatar_url":"https://avatars.githubusercontent.com/u/1328699?v=3","gravatar_id":"","url":"https://api.github.com/users/amoose","html_url":"https://github.com/amoose","followers_url":"https://api.github.com/users/amoose/followers","following_url":"https://api.github.com/users/amoose/following{/other_user}","gists_url":"https://api.github.com/users/amoose/gists{/gist_id}","starred_url":"https://api.github.com/users/amoose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amoose/subscriptions","organizations_url":"https://api.github.com/users/amoose/orgs","repos_url":"https://api.github.com/users/amoose/repos","events_url":"https://api.github.com/users/amoose/events{/privacy}","received_events_url":"https://api.github.com/users/amoose/received_events","type":"User","site_admin":false},"created_at":"2016-05-18T18:02:09Z","updated_at":"2016-05-18T18:02:09Z","body":"Great work, Sam and Moncef! 🚢 "}}