Vue+Oauth登录实现

介绍

在开发时,经常会遇到使用第三方登录的场景(比如微信,微博登录), 今天我们就来聊聊 Oauth 登录.

Oauth流程

其实各家 Oauth 登录流程大同小异,最为经典的莫过于 githubOauth 登录.但是由于 GFW 的原因,时不时的抽风,调用接口调试有时候会超时。 因此下面我们使用国内的 gitee 举例说明. Oauth流程

纯后端实现

这里就不介绍了,阮一峰老师有个 demo,使用 koa + axios实现 博客: GitHub OAuth 第三方登录示例教程 源码: node-oauth-demo

纯前端实现

为了方便大家理解, 这里将认证步骤归纳总结如下:

  1. 应用将用户引导(浏览器链接跳转)到码云三方认证页面上

  2. 用户对应用进行授权(网页上点击同意)

  3. 码云服务器通过回调地址跳回时将 code 带上

  4. 应用获取 urlcode 向码云服务器请求 access_token

  5. 应用通过 access_token 调用码云相关接口获取用户信息

具体步骤如下:

  1. 登录码云 => 头像下拉 => 设置 => 左侧数据管理 => 第三方应用 => 创建应用

  2. 创建一个 vue 项目, router 新建俩个路由及对应页面

  3. 码云创建应用填入信息, 创建应用

  4. 复制应用的 Client ID, Client Secret, 保存到 vue 项目

  5. vite.config.js 配置 server

  6. oauth/index.vue 编写跳转链接

  7. 完善 oauth/redirect.vue 页面 这里特别要注意.网上多数用 axios 直接向 gitee 请求是会报错 promise error ,因为多数 Oauth 平台获取授权的返回值结构体没有 code 属性,会导致 axios 不能正常 resolve ,而走 reject

参考

Last updated

Was this helpful?