{"action":"created","issue":{"url":"https://api.github.com/repos/feathersjs/feathers-authentication/issues/96","repository_url":"https://api.github.com/repos/feathersjs/feathers-authentication","labels_url":"https://api.github.com/repos/feathersjs/feathers-authentication/issues/96/labels{/name}","comments_url":"https://api.github.com/repos/feathersjs/feathers-authentication/issues/96/comments","events_url":"https://api.github.com/repos/feathersjs/feathers-authentication/issues/96/events","html_url":"https://github.com/feathersjs/feathers-authentication/pull/96","id":139294820,"number":96,"title":"Adding passwordless service","user":{"login":"ccummings","id":464282,"avatar_url":"https://avatars.githubusercontent.com/u/464282?v=3","gravatar_id":"","url":"https://api.github.com/users/ccummings","html_url":"https://github.com/ccummings","followers_url":"https://api.github.com/users/ccummings/followers","following_url":"https://api.github.com/users/ccummings/following{/other_user}","gists_url":"https://api.github.com/users/ccummings/gists{/gist_id}","starred_url":"https://api.github.com/users/ccummings/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccummings/subscriptions","organizations_url":"https://api.github.com/users/ccummings/orgs","repos_url":"https://api.github.com/users/ccummings/repos","events_url":"https://api.github.com/users/ccummings/events{/privacy}","received_events_url":"https://api.github.com/users/ccummings/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-03-08T14:42:46Z","updated_at":"2016-03-16T17:21:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/feathersjs/feathers-authentication/pulls/96","html_url":"https://github.com/feathersjs/feathers-authentication/pull/96","diff_url":"https://github.com/feathersjs/feathers-authentication/pull/96.diff","patch_url":"https://github.com/feathersjs/feathers-authentication/pull/96.patch"},"body":"Adds passwordless auth via the [passwordless](https://passwordless.net/) library.\r\n\r\nThis is setup to work stateless without sessions to match the rest of feather's auth, but that can be enabled with the `sessionSupport` middleware if needed in the future.\r\n\r\nAuthentication flow works like this:\r\n\r\n- User submits email address to `auth/passwordless`\r\n    - If the user is new, create user\r\n    - Generate a token and deliver it using the various delivery methods (email, sms, carrier pigeon)\r\n- User clicks the link they were given which should `GET auth/passwordless`\r\n    - We validate the token and return a JWT token (using the token service)\r\n\r\nAt this point, all auth is done with the JWT token.\r\n\r\nI've added a `passwordless` service and made a few adjustments to the middleware. I also created an example which works for authenticating.\r\n\r\nIt seems the feathers client stuff around authentication and authorization is not working right now (retrieving messages throws errors), but the service itself is modeled closely after `local` and `token` so when that is sorted, this should work just fine."},"comment":{"url":"https://api.github.com/repos/feathersjs/feathers-authentication/issues/comments/197440903","html_url":"https://github.com/feathersjs/feathers-authentication/pull/96#issuecomment-197440903","issue_url":"https://api.github.com/repos/feathersjs/feathers-authentication/issues/96","id":197440903,"user":{"login":"ekryski","id":599019,"avatar_url":"https://avatars.githubusercontent.com/u/599019?v=3","gravatar_id":"","url":"https://api.github.com/users/ekryski","html_url":"https://github.com/ekryski","followers_url":"https://api.github.com/users/ekryski/followers","following_url":"https://api.github.com/users/ekryski/following{/other_user}","gists_url":"https://api.github.com/users/ekryski/gists{/gist_id}","starred_url":"https://api.github.com/users/ekryski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ekryski/subscriptions","organizations_url":"https://api.github.com/users/ekryski/orgs","repos_url":"https://api.github.com/users/ekryski/repos","events_url":"https://api.github.com/users/ekryski/events{/privacy}","received_events_url":"https://api.github.com/users/ekryski/received_events","type":"User","site_admin":false},"created_at":"2016-03-16T17:21:19Z","updated_at":"2016-03-16T17:21:19Z","body":"@ccummings that was my thought when skimming it that it was doing a lot more than we need. You nailed exactly what I've been thinking. I think it's actually pretty easy. I'm going to be digging into auth again today so I will push a PR tonight/tomorrow for this functionality."}}