{"action":"created","comment":{"url":"https://api.github.com/repos/influxdata/chronograf/pulls/comments/110040564","pull_request_review_id":31183805,"id":110040564,"diff_hunk":"@@ -40,11 +37,51 @@ func (c *Claims) Valid() error {\n \t} else if c.StandardClaims.Subject == \"\" {\n \t\treturn fmt.Errorf(\"claim has no subject\")\n \t}\n+\n+\treturn nil\n+}\n+\n+// EverlastingClaims extends jwt.StandardClaims' Valid to make sure claims has\n+// a subject, and it ignores the expiration\n+type EverlastingClaims struct {","path":"oauth2/jwt.go","position":41,"original_position":40,"commit_id":"2896c1da1cfda7067027b793e4b0d1cfdc3bf85a","original_commit_id":"1731ad3085ed5b2c96468577c9247487caeca387","user":{"login":"jaredscheib","id":6403018,"avatar_url":"https://avatars2.githubusercontent.com/u/6403018?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredscheib","html_url":"https://github.com/jaredscheib","followers_url":"https://api.github.com/users/jaredscheib/followers","following_url":"https://api.github.com/users/jaredscheib/following{/other_user}","gists_url":"https://api.github.com/users/jaredscheib/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredscheib/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredscheib/subscriptions","organizations_url":"https://api.github.com/users/jaredscheib/orgs","repos_url":"https://api.github.com/users/jaredscheib/repos","events_url":"https://api.github.com/users/jaredscheib/events{/privacy}","received_events_url":"https://api.github.com/users/jaredscheib/received_events","type":"User","site_admin":false},"body":"Thanks :) #ClaimsEverlasting","created_at":"2017-04-05T22:14:40Z","updated_at":"2017-04-05T22:14:40Z","html_url":"https://github.com/influxdata/chronograf/pull/1119#discussion_r110040564","pull_request_url":"https://api.github.com/repos/influxdata/chronograf/pulls/1119","_links":{"self":{"href":"https://api.github.com/repos/influxdata/chronograf/pulls/comments/110040564"},"html":{"href":"https://github.com/influxdata/chronograf/pull/1119#discussion_r110040564"},"pull_request":{"href":"https://api.github.com/repos/influxdata/chronograf/pulls/1119"}}},"pull_request":{"url":"https://api.github.com/repos/influxdata/chronograf/pulls/1119","id":113298646,"html_url":"https://github.com/influxdata/chronograf/pull/1119","diff_url":"https://github.com/influxdata/chronograf/pull/1119.diff","patch_url":"https://github.com/influxdata/chronograf/pull/1119.patch","issue_url":"https://api.github.com/repos/influxdata/chronograf/issues/1119","number":1119,"state":"open","locked":false,"title":"Add new auth duration CLI option; add client heartbeat","user":{"login":"jaredscheib","id":6403018,"avatar_url":"https://avatars2.githubusercontent.com/u/6403018?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredscheib","html_url":"https://github.com/jaredscheib","followers_url":"https://api.github.com/users/jaredscheib/followers","following_url":"https://api.github.com/users/jaredscheib/following{/other_user}","gists_url":"https://api.github.com/users/jaredscheib/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredscheib/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredscheib/subscriptions","organizations_url":"https://api.github.com/users/jaredscheib/orgs","repos_url":"https://api.github.com/users/jaredscheib/repos","events_url":"https://api.github.com/users/jaredscheib/events{/privacy}","received_events_url":"https://api.github.com/users/jaredscheib/received_events","type":"User","site_admin":false},"body":"  - [x] CHANGELOG.md updated\r\n  - [x] Rebased/mergable\r\n  - [x] Tests pass\r\n  - [x] Sign [CLA](https://influxdata.com/community/cla/) (if not already signed)\r\n\r\nConnect #1095 \r\n\r\n### The problem\r\nUser could not set client sessions to expire when using auth.\r\n\r\n### The Solution\r\n- Refactor server auth Interfaces to abstract them from implementation\r\n- Add new `AUTH_DURATION` CLI option that sets a persistent cookie of whatever desired duration on the client, or if assigned a value of `0` will create a transient cookie (that will expire upon browser close)\r\n- Disambiguate JWT duration from cookie duration\r\n- Add heartbeat to client to log user out when session has expired\r\n- Add `make chronogiraffe` a CLI option","created_at":"2017-03-29T21:26:23Z","updated_at":"2017-04-05T22:14:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8c3d27cd864f0353ba6cdd6e777ff8c10031631b","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/influxdata/chronograf/pulls/1119/commits","review_comments_url":"https://api.github.com/repos/influxdata/chronograf/pulls/1119/comments","review_comment_url":"https://api.github.com/repos/influxdata/chronograf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/influxdata/chronograf/issues/1119/comments","statuses_url":"https://api.github.com/repos/influxdata/chronograf/statuses/2896c1da1cfda7067027b793e4b0d1cfdc3bf85a","head":{"label":"influxdata:1095-cookie_duration","ref":"1095-cookie_duration","sha":"2896c1da1cfda7067027b793e4b0d1cfdc3bf85a","user":{"login":"influxdata","id":5713248,"avatar_url":"https://avatars1.githubusercontent.com/u/5713248?v=3","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"repo":{"id":66506962,"name":"chronograf","full_name":"influxdata/chronograf","owner":{"login":"influxdata","id":5713248,"avatar_url":"https://avatars1.githubusercontent.com/u/5713248?v=3","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/influxdata/chronograf","description":"Open source monitoring and visualization UI for the TICK stack","fork":false,"url":"https://api.github.com/repos/influxdata/chronograf","forks_url":"https://api.github.com/repos/influxdata/chronograf/forks","keys_url":"https://api.github.com/repos/influxdata/chronograf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/influxdata/chronograf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/influxdata/chronograf/teams","hooks_url":"https://api.github.com/repos/influxdata/chronograf/hooks","issue_events_url":"https://api.github.com/repos/influxdata/chronograf/issues/events{/number}","events_url":"https://api.github.com/repos/influxdata/chronograf/events","assignees_url":"https://api.github.com/repos/influxdata/chronograf/assignees{/user}","branches_url":"https://api.github.com/repos/influxdata/chronograf/branches{/branch}","tags_url":"https://api.github.com/repos/influxdata/chronograf/tags","blobs_url":"https://api.github.com/repos/influxdata/chronograf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/influxdata/chronograf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/influxdata/chronograf/git/refs{/sha}","trees_url":"https://api.github.com/repos/influxdata/chronograf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/influxdata/chronograf/statuses/{sha}","languages_url":"https://api.github.com/repos/influxdata/chronograf/languages","stargazers_url":"https://api.github.com/repos/influxdata/chronograf/stargazers","contributors_url":"https://api.github.com/repos/influxdata/chronograf/contributors","subscribers_url":"https://api.github.com/repos/influxdata/chronograf/subscribers","subscription_url":"https://api.github.com/repos/influxdata/chronograf/subscription","commits_url":"https://api.github.com/repos/influxdata/chronograf/commits{/sha}","git_commits_url":"https://api.github.com/repos/influxdata/chronograf/git/commits{/sha}","comments_url":"https://api.github.com/repos/influxdata/chronograf/comments{/number}","issue_comment_url":"https://api.github.com/repos/influxdata/chronograf/issues/comments{/number}","contents_url":"https://api.github.com/repos/influxdata/chronograf/contents/{+path}","compare_url":"https://api.github.com/repos/influxdata/chronograf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/influxdata/chronograf/merges","archive_url":"https://api.github.com/repos/influxdata/chronograf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/influxdata/chronograf/downloads","issues_url":"https://api.github.com/repos/influxdata/chronograf/issues{/number}","pulls_url":"https://api.github.com/repos/influxdata/chronograf/pulls{/number}","milestones_url":"https://api.github.com/repos/influxdata/chronograf/milestones{/number}","notifications_url":"https://api.github.com/repos/influxdata/chronograf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/influxdata/chronograf/labels{/name}","releases_url":"https://api.github.com/repos/influxdata/chronograf/releases{/id}","deployments_url":"https://api.github.com/repos/influxdata/chronograf/deployments","created_at":"2016-08-24T23:28:56Z","updated_at":"2017-04-05T15:08:38Z","pushed_at":"2017-04-05T22:09:38Z","git_url":"git://github.com/influxdata/chronograf.git","ssh_url":"git@github.com:influxdata/chronograf.git","clone_url":"https://github.com/influxdata/chronograf.git","svn_url":"https://github.com/influxdata/chronograf","homepage":"https://www.influxdata.com/time-series-platform/chronograf/","size":37106,"stargazers_count":193,"watchers_count":193,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":126,"forks":32,"open_issues":126,"watchers":193,"default_branch":"master"}},"base":{"label":"influxdata:master","ref":"master","sha":"970cab1743da77b8d094f531f13808478f1ae26e","user":{"login":"influxdata","id":5713248,"avatar_url":"https://avatars1.githubusercontent.com/u/5713248?v=3","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"repo":{"id":66506962,"name":"chronograf","full_name":"influxdata/chronograf","owner":{"login":"influxdata","id":5713248,"avatar_url":"https://avatars1.githubusercontent.com/u/5713248?v=3","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/influxdata/chronograf","description":"Open source monitoring and visualization UI for the TICK stack","fork":false,"url":"https://api.github.com/repos/influxdata/chronograf","forks_url":"https://api.github.com/repos/influxdata/chronograf/forks","keys_url":"https://api.github.com/repos/influxdata/chronograf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/influxdata/chronograf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/influxdata/chronograf/teams","hooks_url":"https://api.github.com/repos/influxdata/chronograf/hooks","issue_events_url":"https://api.github.com/repos/influxdata/chronograf/issues/events{/number}","events_url":"https://api.github.com/repos/influxdata/chronograf/events","assignees_url":"https://api.github.com/repos/influxdata/chronograf/assignees{/user}","branches_url":"https://api.github.com/repos/influxdata/chronograf/branches{/branch}","tags_url":"https://api.github.com/repos/influxdata/chronograf/tags","blobs_url":"https://api.github.com/repos/influxdata/chronograf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/influxdata/chronograf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/influxdata/chronograf/git/refs{/sha}","trees_url":"https://api.github.com/repos/influxdata/chronograf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/influxdata/chronograf/statuses/{sha}","languages_url":"https://api.github.com/repos/influxdata/chronograf/languages","stargazers_url":"https://api.github.com/repos/influxdata/chronograf/stargazers","contributors_url":"https://api.github.com/repos/influxdata/chronograf/contributors","subscribers_url":"https://api.github.com/repos/influxdata/chronograf/subscribers","subscription_url":"https://api.github.com/repos/influxdata/chronograf/subscription","commits_url":"https://api.github.com/repos/influxdata/chronograf/commits{/sha}","git_commits_url":"https://api.github.com/repos/influxdata/chronograf/git/commits{/sha}","comments_url":"https://api.github.com/repos/influxdata/chronograf/comments{/number}","issue_comment_url":"https://api.github.com/repos/influxdata/chronograf/issues/comments{/number}","contents_url":"https://api.github.com/repos/influxdata/chronograf/contents/{+path}","compare_url":"https://api.github.com/repos/influxdata/chronograf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/influxdata/chronograf/merges","archive_url":"https://api.github.com/repos/influxdata/chronograf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/influxdata/chronograf/downloads","issues_url":"https://api.github.com/repos/influxdata/chronograf/issues{/number}","pulls_url":"https://api.github.com/repos/influxdata/chronograf/pulls{/number}","milestones_url":"https://api.github.com/repos/influxdata/chronograf/milestones{/number}","notifications_url":"https://api.github.com/repos/influxdata/chronograf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/influxdata/chronograf/labels{/name}","releases_url":"https://api.github.com/repos/influxdata/chronograf/releases{/id}","deployments_url":"https://api.github.com/repos/influxdata/chronograf/deployments","created_at":"2016-08-24T23:28:56Z","updated_at":"2017-04-05T15:08:38Z","pushed_at":"2017-04-05T22:09:38Z","git_url":"git://github.com/influxdata/chronograf.git","ssh_url":"git@github.com:influxdata/chronograf.git","clone_url":"https://github.com/influxdata/chronograf.git","svn_url":"https://github.com/influxdata/chronograf","homepage":"https://www.influxdata.com/time-series-platform/chronograf/","size":37106,"stargazers_count":193,"watchers_count":193,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":126,"forks":32,"open_issues":126,"watchers":193,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/influxdata/chronograf/pulls/1119"},"html":{"href":"https://github.com/influxdata/chronograf/pull/1119"},"issue":{"href":"https://api.github.com/repos/influxdata/chronograf/issues/1119"},"comments":{"href":"https://api.github.com/repos/influxdata/chronograf/issues/1119/comments"},"review_comments":{"href":"https://api.github.com/repos/influxdata/chronograf/pulls/1119/comments"},"review_comment":{"href":"https://api.github.com/repos/influxdata/chronograf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/influxdata/chronograf/pulls/1119/commits"},"statuses":{"href":"https://api.github.com/repos/influxdata/chronograf/statuses/2896c1da1cfda7067027b793e4b0d1cfdc3bf85a"}}}}
{"actor":{"display_login":"jaredscheib"}}