博主信息
博文 17
粉丝 0
评论 0
访问量 19459
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
vue实现GitHub的第三方授权方法示例
P粉676693833
原创
858人浏览过

本文主要介绍了vue实现GitHub的第三方授权,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
目录
创建OAuth Apps
获取code
获取access_token
获取用户信息
最近在完善我的博客系统,突然想到从原本临时填写 name + email 进行评论改成使用GitHub授权登陆以发表评论。
废话不多说,直接奔入主题

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

创建OAuth Apps
首先,你需要一个GitHub账户然后前往GitHub developers,根据要求填写完成之后,会自动生成Client_ID和Client Secret,在之后的步骤中会用到。

获取code

  1. //method
  2. async githubLogin() {
  3. windows.location.href =
  4. "https://github.com/login/oauth/authorize?client_id = your_client_id&redirect_uri=your_redirect_uri"
  5. }
  1. <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,以进行下一步操作。

  1. your_redirect_uri?code=xxx

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

  1. /*
  2. /githubAccessToken:https://github.com/login/oauth/access_token
  3. */
  4. this.$axios
  5. .get('/githubAccessToken',{
  6. params: {
  7. client_id: your_client_id,
  8. client_secret: your_client_secret,
  9. code: your_code
  10. }
  11. })

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

  1. access_token=xxxxx&token_type=bearer

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

  1. Accept: "application/json"
  2. => {"access_token":xxxxx,"token_type":bearer}

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

  1. /*
  2. /githubUserInfo:https://api.github.com/user
  3. */
  4. this.$axios
  5. .get('/githubUserInfo', {
  6. headers: {
  7. "Content-Type": "application/x-www-form-urlencoded",
  8. Accept: "application/json",
  9. Authorization: `token ${access_token}` //必填
  10. }
  11. })

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

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

您可能感兴趣的文章:

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学