{"action":"created","issue":{"url":"https://api.github.com/repos/meanjs/mean/issues/1163","repository_url":"https://api.github.com/repos/meanjs/mean","labels_url":"https://api.github.com/repos/meanjs/mean/issues/1163/labels{/name}","comments_url":"https://api.github.com/repos/meanjs/mean/issues/1163/comments","events_url":"https://api.github.com/repos/meanjs/mean/issues/1163/events","html_url":"https://github.com/meanjs/mean/pull/1163","id":128965035,"number":1163,"title":"feat(core): JWT Authentication","user":{"login":"trainerbill","id":3578259,"avatar_url":"https://avatars.githubusercontent.com/u/3578259?v=3","gravatar_id":"","url":"https://api.github.com/users/trainerbill","html_url":"https://github.com/trainerbill","followers_url":"https://api.github.com/users/trainerbill/followers","following_url":"https://api.github.com/users/trainerbill/following{/other_user}","gists_url":"https://api.github.com/users/trainerbill/gists{/gist_id}","starred_url":"https://api.github.com/users/trainerbill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trainerbill/subscriptions","organizations_url":"https://api.github.com/users/trainerbill/orgs","repos_url":"https://api.github.com/users/trainerbill/repos","events_url":"https://api.github.com/users/trainerbill/events{/privacy}","received_events_url":"https://api.github.com/users/trainerbill/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/meanjs/mean/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"codydaig","id":2314748,"avatar_url":"https://avatars.githubusercontent.com/u/2314748?v=3","gravatar_id":"","url":"https://api.github.com/users/codydaig","html_url":"https://github.com/codydaig","followers_url":"https://api.github.com/users/codydaig/followers","following_url":"https://api.github.com/users/codydaig/following{/other_user}","gists_url":"https://api.github.com/users/codydaig/gists{/gist_id}","starred_url":"https://api.github.com/users/codydaig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codydaig/subscriptions","organizations_url":"https://api.github.com/users/codydaig/orgs","repos_url":"https://api.github.com/users/codydaig/repos","events_url":"https://api.github.com/users/codydaig/events{/privacy}","received_events_url":"https://api.github.com/users/codydaig/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/meanjs/mean/milestones/6","html_url":"https://github.com/meanjs/mean/milestones/0.5.0","labels_url":"https://api.github.com/repos/meanjs/mean/milestones/6/labels","id":1213421,"number":6,"title":"0.5.0","description":"","creator":{"login":"ilanbiala","id":3695164,"avatar_url":"https://avatars.githubusercontent.com/u/3695164?v=3","gravatar_id":"","url":"https://api.github.com/users/ilanbiala","html_url":"https://github.com/ilanbiala","followers_url":"https://api.github.com/users/ilanbiala/followers","following_url":"https://api.github.com/users/ilanbiala/following{/other_user}","gists_url":"https://api.github.com/users/ilanbiala/gists{/gist_id}","starred_url":"https://api.github.com/users/ilanbiala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilanbiala/subscriptions","organizations_url":"https://api.github.com/users/ilanbiala/orgs","repos_url":"https://api.github.com/users/ilanbiala/repos","events_url":"https://api.github.com/users/ilanbiala/events{/privacy}","received_events_url":"https://api.github.com/users/ilanbiala/received_events","type":"User","site_admin":false},"open_issues":34,"closed_issues":95,"state":"open","created_at":"2015-07-17T18:54:42Z","updated_at":"2016-02-23T21:41:58Z","due_on":null,"closed_at":null},"comments":74,"created_at":"2016-01-26T22:34:25Z","updated_at":"2016-02-24T09:30:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/meanjs/mean/pulls/1163","html_url":"https://github.com/meanjs/mean/pull/1163","diff_url":"https://github.com/meanjs/mean/pull/1163.diff","patch_url":"https://github.com/meanjs/mean/pull/1163.patch"},"body":"I took a stab at redoing the Authentication in favor of JWT.  I am using passport-jwt to leverage the existing authentication structure.  The Authentication service now holds a user and token and uses localStorage to store the token.  I am only storing the token.  If you refresh the page the AuthService will look for a token in local storage and if it exists hits the users/me route to get the user.  The auth service also sets the $http header for Authorization if the token exists so you don't have to add it to other services.  Currently working:\r\n\r\n1.  Login\r\n2.  Sign Up\r\n3.  Persistent on Refresh and users/me route\r\n4.  Edit Profile\r\n\r\nI want to get buy in from contributors before going any further.  This PR will touch a lot of files and I don't want to get all the way done and someone has a problem and this ends up in PR hell.  If I can get some feedback and +1's I will have this done by Friday this week.  Also would like a volunteer to help fix the tests when this is done and ready.  Thanks to @mleanos for the server side kick start.\r\n\r\n@mleanos @lirantal @ilanbiala @codydaig \r\n\r\nFixes https://github.com/meanjs/mean/issues/389\r\nFixes https://github.com/meanjs/mean/issues/1086\r\n"},"comment":{"url":"https://api.github.com/repos/meanjs/mean/issues/comments/188160937","html_url":"https://github.com/meanjs/mean/pull/1163#issuecomment-188160937","issue_url":"https://api.github.com/repos/meanjs/mean/issues/1163","id":188160937,"user":{"login":"0xNacho","id":2890475,"avatar_url":"https://avatars.githubusercontent.com/u/2890475?v=3","gravatar_id":"","url":"https://api.github.com/users/0xNacho","html_url":"https://github.com/0xNacho","followers_url":"https://api.github.com/users/0xNacho/followers","following_url":"https://api.github.com/users/0xNacho/following{/other_user}","gists_url":"https://api.github.com/users/0xNacho/gists{/gist_id}","starred_url":"https://api.github.com/users/0xNacho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0xNacho/subscriptions","organizations_url":"https://api.github.com/users/0xNacho/orgs","repos_url":"https://api.github.com/users/0xNacho/repos","events_url":"https://api.github.com/users/0xNacho/events{/privacy}","received_events_url":"https://api.github.com/users/0xNacho/received_events","type":"User","site_admin":false},"created_at":"2016-02-24T09:30:15Z","updated_at":"2016-02-24T09:30:15Z","body":"@trainerbill I've just read your comment about CSRF protection. If meanjs no longer use cookies, you don't need to worry about cross requests. In other words, with JWT you don't need CSRF protection."}}