欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue实现GitHub的第三方授权方法示例

程序员文章站 2022-06-25 10:52:34
目录创建oauth apps获取code获取access_token获取用户信息最近在完善我的博客系统,突然想到从原本临时填写 name + email 进行评论改成使用github授权登陆以发表评论...

最近在完善我的博客系统,突然想到从原本临时填写 name + email 进行评论改成使用github授权登陆以发表评论。
废话不多说,直接奔入主题

温馨提示:本文章只满足个人使用需求,如果需要学习更详细的使用方法,可访问 oauth官方文档

创建oauth apps

首先,你需要一个github账户然后前往github developers,根据要求填写完成之后,会自动生成client_id和client secret,在之后的步骤中会用到。

获取code

//method
async githublogin() {
 windows.location.href = 
    "https://github.com/login/oauth/authorize?client_id = your_client_id&redirect_uri=your_redirect_uri"
}
<a href="https://github.com/login/oauth/authorize?client_id = your_client_id&redirect_uri=your_redirect_uri">github登陆</a>

路由参数中redirect_uri是可选的。如果省略,则github将重定向到你在oauth apps配置的回调路径。如果提供,则你所填写的redirect_uri必须是你在oauth apps中配置的回调路径的子路径。如下:

callback: http://xx.com/github
good: http://xx.com/github
good: http://xx.com/github/path/path
bad: http://xx.com/git
bad: http://xxxxx.com/path

如果用户接受你的请求,将会跳转到redirect_uri,我们可以接受路由中的参数code,以进行下一步操作。

your_redirect_uri?code=xxx

获取access_token

我们需要client_id、client_secret和code来获取access_token。

/*
/githubaccesstoken:https://github.com/login/oauth/access_token
*/
this.$axios
 .get('/githubaccesstoken',{
 params: {
  client_id: your_client_id,
  client_secret: your_client_secret,
  code: your_code
  }
 })

默认情况下,你会获取如下响应:

access_token=xxxxx&token_type=bearer

如果你想用更方便的格式接收响应,你可以在headers中自定义accept:

accept: "application/json"
=> {"access_token":xxxxx,"token_type":bearer}

获取用户信息

获取access_token之后,我们就可以请求用户的部分信息了:

/*
/githubuserinfo:https://api.github.com/user
*/
this.$axios
 .get('/githubuserinfo', {
  headers: {
    "content-type": "application/x-www-form-urlencoded",
    accept: "application/json",
    authorization: `token ${access_token}` //必填
  }
})

然后你便可以获取到用户信息了。

到此这篇关于vue实现github的第三方授权的文章就介绍到这了,更多相关vue实现github的第三方授权内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!