{"action":"opened","issue":{"url":"https://api.github.com/repos/chili-epfl/FROG/issues/433","repository_url":"https://api.github.com/repos/chili-epfl/FROG","labels_url":"https://api.github.com/repos/chili-epfl/FROG/issues/433/labels{/name}","comments_url":"https://api.github.com/repos/chili-epfl/FROG/issues/433/comments","events_url":"https://api.github.com/repos/chili-epfl/FROG/issues/433/events","html_url":"https://github.com/chili-epfl/FROG/issues/433","id":253353019,"number":433,"title":"LTI redirect with more security","user":{"login":"houshuang","id":61575,"avatar_url":"https://avatars1.githubusercontent.com/u/61575?v=4","gravatar_id":"","url":"https://api.github.com/users/houshuang","html_url":"https://github.com/houshuang","followers_url":"https://api.github.com/users/houshuang/followers","following_url":"https://api.github.com/users/houshuang/following{/other_user}","gists_url":"https://api.github.com/users/houshuang/gists{/gist_id}","starred_url":"https://api.github.com/users/houshuang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houshuang/subscriptions","organizations_url":"https://api.github.com/users/houshuang/orgs","repos_url":"https://api.github.com/users/houshuang/repos","events_url":"https://api.github.com/users/houshuang/events{/privacy}","received_events_url":"https://api.github.com/users/houshuang/received_events","type":"User","site_admin":false},"labels":[{"id":668355241,"url":"https://api.github.com/repos/chili-epfl/FROG/labels/UNIL%20FIP","name":"UNIL FIP","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-08-28T14:47:43Z","updated_at":"2017-08-28T14:47:43Z","closed_at":null,"body":"Currently the server receives all the arguments from the LTI, and verifies it (currently broken), and then redirects to a URL with the `?login=` parameter, which lets the frontend log into the backend. This works, but is completely insecure (anyone could write login=teacher). We should have some more security here, for example instead of having default passwords, we could have different passwords for each student, and pass these as part of the URL. These would have to be stored in clear-text in the database. This would mean that a student could theoretically copy his own password and reuse, but could not get anyone else's passwords (and remember, the passwords are sent through SSL encryption). \r\n\r\nEven more secure would be generating a one-time token on the server, which expires within five minutes. However, that would require us to hijack the Meteor user login method somehow. I'm sure this is possible, but it might be a bit complicated. I think the first approach is fine for now. "}}
{"actor":{"display_login":"houshuang"}}