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 相关文章推荐
Js 去掉字符串中的空格(实现代码)
Nov 19 Javascript
用JavaScript实现类似于ListBox功能示例代码
Mar 09 Javascript
AngularJS封装指令方法详解
Dec 12 Javascript
js+html制作简单验证码
Feb 16 Javascript
微信小程序 跳转传递数据的实例
Jul 06 Javascript
Vue中计算属性computed的示例解读
Jul 26 Javascript
ES6模块化的import和export用法方法总结
Aug 08 Javascript
Vue官网todoMVC示例代码
Jan 29 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
Oct 25 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
vue中npm包全局安装和局部安装过程
Sep 03 Javascript
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
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操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
PHPThumb图片处理实例
2014/05/03 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
python文件选择对话框的操作方法
2019/06/27 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
作弊检讨书1000字
2014/02/01 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
法人代表证明书
2014/09/18 职场文书
电力安全学习心得体会
2016/01/18 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL