var router = require('koa-router')();
const simpleOauthModule = require('simple-oauth2')
router.prefix('/users');
const oauth2 = simpleOauthModule.create({
client: {
id: '<CLIENT_ID>',
secret: '<CLIENT_SECRET>',
},
auth: {
tokenHost: 'http://localhost:3000',
tokenPath: '/users/token',
authorizePath: '/users/authorize',
},
});
// Authorization uri definition
const authorizationUri = oauth2.authorizationCode.authorizeURL({
redirect_uri: 'http://localhost:3000/users/callback',
scope: 'notifications',
state: '3(#0/!~',
});
router.get('/auth', function (ctx, next) {
console.log(authorizationUri)
ctx.redirect(authorizationUri);
});
router.get('/authorize', function (ctx, next) {
//上面重定向会转到这个接口(在这里我应该做些什么?)
});
router.post('/access_token', function (ctx, next) {
});
router.get('/callback', function (ctx, next) {
const code = ctx.request.body.code;
console.log('callback',code)
const options = {
code,
};
oauth2.authorizationCode.getToken(options, (error, result) => {
if (error) {
console.error('Access Token Error', error.message);
return ctx.body='Authentication failed';
}
console.log('The resulting token: ', result);
const token = oauth2.accessToken.create(result);
return ctx.body={code:200,token:'token'}
});
});
module.exports = router;
访问localhost:3000/users/auth 会重定向到simple-oauth2.0生成的url,这个url里面带着id、secret等参数,npm上说重定向地址会返回一个code,我应该在那里面接受到这个code啊?