Vue.js中Line第三方登录api的实现代码


Posted in Javascript onJune 29, 2020

国际化的项目就会用用到一些第三方的登录api,这次记录一下Line 的!

按步骤来:

注册Line账号就不说了,虽然麻烦,这就自己去想办法了!

demo 请狠狠的戳这里 http://download.lllomh.com/cliect/#/product/J417081951162505

一:开发者平台配置

去Line 的开发者平台 新建一个App:

https://developers.line.biz/en/

Vue.js中Line第三方登录api的实现代码

Vue.js中Line第三方登录api的实现代码

顺便写好资料:

Vue.js中Line第三方登录api的实现代码

动态演示:

Vue.js中Line第三方登录api的实现代码

这要 用到的 就是2个:

Channel ID 跟 Channel secret  对应

'client_id'  => '5431649755',
'client_secret'=> '234b6e64c13285e6d058ff7b1bbc8e'

关键是这里的重定向地址要填(几乎所有第三方都要):

Vue.js中Line第三方登录api的实现代码

二:代码部署

核心获取第三方的部分

壹:组件封装:

1,起始:这里就

const { code } = queryString.parse(window.location.search.replace('?', ''))

      if(!code) return

这里 页面回调刷新的时候发现url 有这个code 这个值的话 就执行获取 token 的方法,反之不执行:

async created() {
      const { code } = queryString.parse(window.location.search.replace('?', ''))

      if(!code) return

      const result = await this.getToken(code)

      const { data } = await this.getProfile(result.token)

      if(this.friendRequired) {
        const flag = await this.checkFriend(result.token)

        if(!flag) {
          this.error = this.friendErrorTest
        }
      }

      if(!this.error) {
        const response = Object.assign(data, result.getPostable())
        this.$emit('result', response)
      }
    },
async getToken(code) {
        const result = new OAuthRequest({
          code: code,
          clientId: this.clientId,
          clientSecret: this.clientSecret,
          redirectUri: this.callbackUri
        })
        const params = new URLSearchParams()
        linq.from(result.getPostable()).select(x => params.append(x.key, x.value)).toArray()

        const { data } = await axios.post('https://api.line.me/oauth2/v2.1/token', params)
        console.log(data,"data")// 这里拿到返回的第三方的结果个人信息
        return new OAuthResult(data)
      },

贰:组件封装:

1,组件使用:

除了 那个 三个参数,其他的一些 就看着修改整合吧

<template>
 <div id="app">
   <line-login-button
       :client-id="clientId"
       :client-secret="clientSecret"
       :callback-uri="callbackUri"
       @result="result"
       add-friend
       friend-required></line-login-button>
   1232131
 </div>
</template>
<script>
  import LineLoginButton from './components/LineLoginButton'

  export default {
    data() {
      return {
        clientId: '2323649755',
        clientSecret: '323128b6e64c13285e6d058ff7b1bbc8e',
        callbackUri: 'http://localhost:8080' //这里要跟开发者平台中填写的一致
      }
    },

    // created() {
    //   this.clientId = process.env.VUE_APP_LINE_CLIENT_ID
    //   this.clientSecret = process.env.VUE_APP_LINE_CLIENT_SECRET
    //   this.callbackUri = process.env.VUE_APP_LINE_CALLBACK_URL
    // },

    components: {
      LineLoginButton
    },

    methods: {
      result(res) {
        console.log(res)
      }
    }
  }

</script>

<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
}
#nav {
 padding: 30px;
}

#nav a {
 font-weight: bold;
 color: #2c3e50;
}

#nav a.router-link-exact-active {
 color: #42b983;
}
</style>

记得安装 这个插件所需的插件:

import queryString from 'querystring'
  import axios from 'axios'
  import OAuthRequest from '../Entities/OAuthRequest'
  import linq from 'linq'
  import OAuthResult from '../Entities/OAuthResult'

结果:

Vue.js中Line第三方登录api的实现代码

Vue.js中Line第三方登录api的实现代码

总结

到此这篇关于Vue.js中Line第三方登录api的实现代码的文章就介绍到这了,更多相关Line第三方登录api内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Javascript的匿名函数小结
Dec 31 Javascript
javascript 用记忆函数快速计算递归函数
Mar 15 Javascript
JavaScript语言核心数据类型和变量使用介绍
Aug 23 Javascript
JQuery判断HTML元素是否存在的两种解决方法
Dec 26 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
vue中appear的用法
Aug 17 Javascript
vue中使用cropperjs的方法
Mar 01 Javascript
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 Javascript
layui的select联动实现代码
Sep 28 Javascript
vue实现列表滚动的过渡动画
Jun 29 #Javascript
element跨分页操作选择详解
Jun 29 #Javascript
vue实现数字滚动效果
Jun 29 #Javascript
js实现从右往左匀速显示图片(无缝轮播)
Jun 29 #Javascript
Vue实现可移动水平时间轴
Jun 29 #Javascript
uniapp与webview之间的相互传值的实现
Jun 29 #Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 #Javascript
You might like
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
windows下安装Python和pip终极图文教程
2017/03/05 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
学习Django知识点分享
2019/09/11 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
安全生产月活动总结
2014/05/04 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
周一给客户的问候语
2015/11/10 职场文书
python Polars库的使用简介
2021/04/21 Python