Access token as query parameter is deprecated (cannot fetch emails)
Opened this issue ยท 0 comments
stephancill commented
Hi! ๐
Firstly, thanks for your work on this project! ๐
Today I used patch-package to patch passport-github@1.1.0
for the project I'm working on.
GitHub has deprecated passing the access token as a query param and it should now be passed in the Authentication field of the headers. (https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/)
Here is the diff that solved my problem:
diff --git a/node_modules/passport-github/lib/strategy.js b/node_modules/passport-github/lib/strategy.js
index 0f4b07f..b036650 100644
--- a/node_modules/passport-github/lib/strategy.js
+++ b/node_modules/passport-github/lib/strategy.js
@@ -135,7 +135,8 @@ Strategy.prototype.userProfile = function(accessToken, done) {
if (self._scope && self._scope.indexOf('user:email') !== -1) {
- self._oauth2._request('GET', self._userProfileURL + '/emails', { 'Accept': 'application/vnd.github.v3+json' }, '', accessToken, function(err, body, res) {
+ self._oauth2.useAuthorizationHeaderforGET(true)
+ self._oauth2.get(self._userProfileURL + '/emails', accessToken, function(err, body, res) {
if (err) {
// If the attempt to fetch email addresses fails, return the profile
// information that was obtained.
This issue body was partially generated by patch-package.