constKoa=require("koa");constrouter=require("koa-router")();conststatic=require("koa-static");constaxios=require("axios");constquerystring=require("querystring");
constapp=newKoa();app.use(static(__dirname+"/"));//TODO路由待补充app.use(router.routes());app.listen(7001);
Settings/Developer/settings/AuthApp
constconfig={client_id:"",client_secret:"",};
router.get("/github/login",async(ctx)=>{constpath=`https://github.com/login/oauth/authorize?client_id=${config.client_id}`;ctx.redirect(path);});
router.get("/auth/github/callback",async(ctx)=>{const{code}=ctx.query;console.log("code:",code);//TODO其他部分待实现});
router.get("/auth/github/callback",async(ctx)=>{const{code}=ctx.query;console.log("code:",code);constparams={client_id:config.client_id,client_secret:config.client_secret,code:code,};letret=awaitaxios.post("https://github.com/login/oauth/access_token",params);const{access_token}=querystring.parse(ret.data);console.log("access_token:",access_token);//TODO其他部分待实现});
router.get("/auth/github/callback",async(ctx)=>{const{code}=ctx.query;console.log("code:",code);constparams={client_id:config.client_id,client_secret:config.client_secret,code:code,};letret=awaitaxios.post("https://github.com/login/oauth/access_token",params);const{access_token}=querystring.parse(ret.data);console.log("access_token:",access_token);ret=awaitaxios.get(`https://api.github.com/user`,{headers:{Authorization:`token${access_token}`},});console.log("user:",ret.data);ctx.body=`