{"action":"created","issue":{"url":"https://api.github.com/repos/jazzband/django-oauth-toolkit/issues/656","repository_url":"https://api.github.com/repos/jazzband/django-oauth-toolkit","labels_url":"https://api.github.com/repos/jazzband/django-oauth-toolkit/issues/656/labels{/name}","comments_url":"https://api.github.com/repos/jazzband/django-oauth-toolkit/issues/656/comments","events_url":"https://api.github.com/repos/jazzband/django-oauth-toolkit/issues/656/events","html_url":"https://github.com/jazzband/django-oauth-toolkit/pull/656","id":371719327,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI0MTAzNTk1","number":656,"title":"PKCE support","user":{"login":"Maronato","id":19658460,"node_id":"MDQ6VXNlcjE5NjU4NDYw","avatar_url":"https://avatars1.githubusercontent.com/u/19658460?v=4","gravatar_id":"","url":"https://api.github.com/users/Maronato","html_url":"https://github.com/Maronato","followers_url":"https://api.github.com/users/Maronato/followers","following_url":"https://api.github.com/users/Maronato/following{/other_user}","gists_url":"https://api.github.com/users/Maronato/gists{/gist_id}","starred_url":"https://api.github.com/users/Maronato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Maronato/subscriptions","organizations_url":"https://api.github.com/users/Maronato/orgs","repos_url":"https://api.github.com/users/Maronato/repos","events_url":"https://api.github.com/users/Maronato/events{/privacy}","received_events_url":"https://api.github.com/users/Maronato/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-10-18T21:23:10Z","updated_at":"2018-10-19T04:44:00Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/jazzband/django-oauth-toolkit/pulls/656","html_url":"https://github.com/jazzband/django-oauth-toolkit/pull/656","diff_url":"https://github.com/jazzband/django-oauth-toolkit/pull/656.diff","patch_url":"https://github.com/jazzband/django-oauth-toolkit/pull/656.patch"},"body":"This PR adds support for the PKCE technique so that native apps can use the Authorization Code Grant securely, per [rfc 7636](https://tools.ietf.org/html/rfc7636).\r\n\r\nSince oauthlib still [does not support](https://github.com/oauthlib/oauthlib/issues/601) PKCE, I had to intercept and alter some of the responses from oauthlib in order to maintain the API clean.\r\n\r\nThis means that I had to add the missing credentials and extra_credentials to oauthlib's Request object.\r\n\r\nI don't know if this is the best way to implement this, so suggestions are appreciated."},"comment":{"url":"https://api.github.com/repos/jazzband/django-oauth-toolkit/issues/comments/431243312","html_url":"https://github.com/jazzband/django-oauth-toolkit/pull/656#issuecomment-431243312","issue_url":"https://api.github.com/repos/jazzband/django-oauth-toolkit/issues/656","id":431243312,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMTI0MzMxMg==","user":{"login":"jleclanche","id":235410,"node_id":"MDQ6VXNlcjIzNTQxMA==","avatar_url":"https://avatars1.githubusercontent.com/u/235410?v=4","gravatar_id":"","url":"https://api.github.com/users/jleclanche","html_url":"https://github.com/jleclanche","followers_url":"https://api.github.com/users/jleclanche/followers","following_url":"https://api.github.com/users/jleclanche/following{/other_user}","gists_url":"https://api.github.com/users/jleclanche/gists{/gist_id}","starred_url":"https://api.github.com/users/jleclanche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jleclanche/subscriptions","organizations_url":"https://api.github.com/users/jleclanche/orgs","repos_url":"https://api.github.com/users/jleclanche/repos","events_url":"https://api.github.com/users/jleclanche/events{/privacy}","received_events_url":"https://api.github.com/users/jleclanche/received_events","type":"User","site_admin":false},"created_at":"2018-10-19T04:44:00Z","updated_at":"2018-10-19T04:44:00Z","author_association":"COLLABORATOR","body":"Can you squash and keep to a single migration please?"}}
{"actor":{"display_login":"jleclanche"}}