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 相关文章推荐
扩展jQuery对象时如何扩展成员变量具体怎么实现
Apr 25 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
Sep 04 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
Jan 25 Javascript
让Vue也可以使用Redux的方法
May 23 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
详解mpvue实现对苹果X安全区域的适配
Jul 31 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
Aug 26 Javascript
WEEX环境搭建与入门详解
Oct 16 Javascript
JS实现导航栏楼层特效
Jan 01 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 批量删除 sql语句
2009/06/05 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
jquery 弹出层实现代码
2009/10/30 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
Python3多线程操作简单示例
2018/05/22 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
渔夫的故事教学反思
2014/02/14 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
服装设计专业自荐信
2014/06/17 职场文书
反腐倡廉标语
2014/06/24 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
万能检讨书2000字
2014/10/17 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
行政上诉状范文
2015/05/23 职场文书