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 cookies实现简单统计访问次数
Nov 24 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 Javascript
面向对象的Javascript之一(初识Javascript)
Jan 20 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
Jan 25 Javascript
js异常捕获方法介绍
Apr 10 Javascript
jquery高级编程的最佳实践详解
Mar 23 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
jQuery实现轮播图效果
Nov 26 jQuery
JavaScript回调函数callback用法解析
Jan 14 Javascript
js实现简单五子棋游戏
May 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模拟登陆的实现方法分析
2015/01/09 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
几道数据库的面试题或笔试题
2014/05/31 面试题
Linux常见面试题
2013/03/18 面试题
银行柜员应聘推荐信范文
2013/11/24 职场文书
房产销售经理职责
2013/12/20 职场文书
财务部出纳岗位职责
2013/12/22 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
在Python中如何使用yield
2021/06/07 Python
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
详解Vue router路由
2021/11/20 Vue.js
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android