github第三方登录实现(github登录不上)

GitHubOAuth第三方登录导入模块constKoa=require(\”koa\”);constrouter=require(\”koa-router\”)();conststatic=require(\”koa-static\”);con

GitHub OAuth 第三方登录

github第三方登录实现(github登录不上)

导入模块

constKoa=require(\”koa\”);constrouter=require(\”koa-router\”)();conststatic=require(\”koa-static\”);constaxios=require(\”axios\”);constquerystring=require(\”querystring\”);

初始化 App

constapp=newKoa();app.use(static(__dirname+\”/\”));//TODO路由待补充app.use(router.routes());app.listen(7001);

登录 GitHub 申请 AuthApp:

Settings/Developer/settings/AuthApp

constconfig={client_id:\”\”,client_secret:\”\”,};

第一步:前端触发服务器接口由服务器重定向到 Github 授权页面

router.get(\”/github/login\”,async(ctx)=>{constpath=`https://github.com/login/oauth/authorize?client_id=${config.client_id}`;ctx.redirect(path);});

第二步:GitHub 验证授权信息后重定向到服务器接口返回 Code

router.get(\”/auth/github/callback\”,async(ctx)=>{const{code}=ctx.query;console.log(\”code:\”,code);//TODO其他部分待实现});

第三步:服务器通过 code 换取 accesstoken

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其他部分待实现});

第四步:使用 accesstoken 获取用户信息,服务器做登录态处理

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=`<h1>Hello${ret.data.login}</h1><imgsrc=\”${ret.data.avatar_url}\”>`;});

补充 Html 部分:

<!DOCTYPEhtml><htmllang=\”en\”><head><metacharset=\”UTF-8\”/><metahttp-equiv=\”X-UA-Compatible\”content=\”IE=edge\”/><metaname=\”viewport\”content=\”width=device-width,initial-scale=1.0\”/><title>Loginwithgithub</title></head><body><ahref=\”/github/login\”>Loginwithgithub</a></body></html>

以上就是爱惜日网»github登录不上github第三方登录实现)的相关内容了,更多精彩请关注作者:爱惜日号SEO专员

声明:本文由爱惜日网/爱惜日号作者编辑发布,更多技术关注!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/79259.html

(0)
nan
上一篇 2022-01-08
下一篇 2022-01-08

相关推荐

  • 苹果6s32g上市时间和价格(iphone6发布价格)

    iPhone6及iPhone6Plus这么重磅的产品,相信不少人在发布当晚都全程观看了直播。蒂姆库克显然把AppleWatch当作了重点产品介绍,对于两款iPhone的新特性只是简略的一带而过,就在大家都还没弄明白咋回事时,一切就都

    2021-11-15 创业分享
    0
  • oec管理模式是什么意思?oec管理模式的表现形式是什么?

    oec管理模式是什么意思?oec管理模式的表现形式是什么?其中”O”代表Overall(,翻译过来就是全方位,”E”代表Everyone翻译过来就是每人、Everything每件事、Everyday每天,”C”代表Control翻译是控制、

    2021-11-15
    0
  • 兼爱上原文及翻译注释(墨子兼爱上原文及翻译)

    1.圣人以治天下为事者也[1],必知乱之所自起[2],焉能治之[3];不知乱之所自起,则不能治。譬之如医之攻人之疾者然[4],必知疾之所自起,焉能攻之;不知疾之所自起,则弗能攻[5]。治乱者何独不然?必知乱之所自起,焉能治之;不知乱之所自起

    2021-11-24
    0
  • 优秀美文摘抄800字初中(初中800字优秀作文)

    短暂,这个词听起来多么的令人惋惜,好像一只翻飞的蝴蝶,在你的眼前忽闪凌翅而过,你恍惚地伸出手,想要抓住它,却再张开手掌时,失望地看着空落落的掌心,什么也没有抓到。我曾漫步走过一个街道。土黄色的两行墙边忽然冒出了一簇红艳艳的杜鹃花。那束花短暂的生命

    2022-01-12
    0
  • 盘点四个投资小风险低的生意(有哪些投资小的生意)

    在当前社会上,有不少下岗失业人员,年龄都在50岁左右,这个年龄段想重新找一份工作,肯定是非常困难的。那么,一个53岁的下岗失业者,现在适合做哪些投资小的生意呢?我这里根据当前市场情况,推荐一些项目,仅供用于参考调研。奶茶外贸店现在如果开一家奶茶店,投入也不少,不说门面转让费了,就是装潢钱也得上万元,还有高昂的门面房租,几万元投入少不了。一个53岁的人,可以…

    2021-08-10
    0
  • 表达爱情的古诗词名句(著名爱情古诗词大全)

    你想知道我对你的爱情是什么吗?就是从心底里喜欢你,觉得你的一举一动都很亲切,不高兴你比喜欢我更喜欢别人。你要是喜欢别人我会哭,但是还是喜欢你。愿你找到那个可以让你觉得温暖,可以陪你到世界尽头的

    2022-01-19 创业分享
    0

发表回复

登录后才能评论