网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

node如何实现github第三方登录

这篇文章主要介绍了node如何实现github第三方登录的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node如何实现github第三方登录文章都会有所收获,下面我们一起来看看吧。

目前创新互联建站已为成百上千家的企业提供了网站建设、域名、虚拟空间、网站运营、企业网站设计、博山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

一、详细流程

node如何实现github第三方登录

二、具体流程

1.注册应用

①登录github,Settings=>Developer settings=>OAuth Apps=>Register a new application

node如何实现github第三方登录

node如何实现github第三方登录
②填写应用信息
node如何实现github第三方登录

③注册完成,得到Client IDClient Secret

node如何实现github第三方登录

2.前端发起请求到github授权页面,授权成功拿到code重定向到配置的后端callback URL

3.后端拿到code,带着code请求github,拿到token,再将token放在url上传递给前端

router.get('/github',controller.auth.githubLogin)
const axios = require('axios')
const querystring = require('querystring')

const config = {
    client_id: "你自己的client_id",
    client_secret: "你自己的client_secret"
}
class AuthController {
    async githubLogin(ctx) {
        const code = ctx.request.query.code
        const params = {
            client_id: config.client_id,
            client_secret: config.client_secret,
            code: code
        }
        let res = await axios.post('https://github.com/login/oauth/access_token', params)
        console.log(res)
        const token = querystring.parse(res.data).access_token
        ctx.cookies.set('token', token, {
            maxAge: ctx.config.jwt.expire * 1000,
        });
        res = { ...ctx.errCode.SUCCESS, data: { token } };
        ctx.redirect('http://172.25.78.33:8081/login/success?token='+token)
    }
}
module.exports = exports = new AuthController();

4.前端创建临时页面,保存url上的token,并跳转到登录成功页面

临时页面会跳转的很快,基本上看不到。





关于“node如何实现github第三方登录”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“node如何实现github第三方登录”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。


网站名称:node如何实现github第三方登录
分享网址:http://bjjierui.cn/article/pdopcd.html

其他资讯