如何用Node和Express来validationgithub

我有我的节点示例使用Express和node-github。 我正在请求令牌,以便用户可以授权应用程序创build一个要点。 我遇到的问题是要像一个匿名用户创build的要点。

如果我从代码中删除了github.authenticate,它是以匿名方式创build的。 如果我离开github.authenticate没有创build要点,并没有显示错误。

我认为这个问题包括我必须在哪里findgithub.authenticate。

我有我的callback

app.get('/auth/github/callback',function (req, res) { var url = Url.parse(req.url); var path = url.pathname; var query = querystring.parse(url.query); var code = req.query.code; console.log('/callback'); OAuth2.AuthCode.getToken({ code: code, redirect_uri: 'http://127.0.0.1:3000/auth/github/callback' }, saveToken); github.authenticate({ type: "oauth", token: accessToken }); res.redirect('home'); function saveToken(error, result) { if (error) { console.log('Access Token Error', error.message); } accessToken = OAuth2.AccessToken.create(result); } }); 

这是我的post。 这里主要是创造。

 app.post('/test', function(req, res){ github.gists.create({ "description": "the description for this gist", "public": true, "files": { "TEST_2.md": { "content": "<html><h1>This is a Test!</h1><b>Hello</b></html>" } } }, function(err, rest) { console.log(rest); res.render('/'); }); }); 

我一直在试图寻找一个类似的问题,但只是发现这个问题和答案在哪里使用我正在使用的模块。

我find了解决scheme。 我没有使用简单的oauth,而是将其改为oauth。 希望它可以帮助别人。

 var oauth = require("oauth").OAuth2; var OAuth2 = new oauth(GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, "https://github.com/", "login/oauth/authorize", "login/oauth/access_token"); app.get('/auth/github',function(req,res){ res.writeHead(303, { Location: OAuth2.getAuthorizeUrl({ redirect_uri: 'http://127.0.0.1:3000/auth/github/callback', scope: "user,repo,gist" }) }); res.end(); }); app.get('/auth/github/callback',function (req, res) { var code = req.query.code; OAuth2.getOAuthAccessToken(code, {}, function (err, access_token, refresh_token) { if (err) { console.log(err); } accessToken = access_token; // authenticate github API console.log("AccessToken: "+accessToken+"\n"); github.authenticate({ type: "oauth", token: accessToken }); }); res.redirect('home'); }); github.gists.create({ "description": "the description for this gist", "public": true, "files": { "TEST_2.md": { "content": "<html><h1>This is a Test!</h1><b>Hello</b></html>" } } }, function(err, rest) { console.log(rest); console.log(err); res.render('/'); });