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+CSS 图片等比缩小并垂直居中实现代码
Dec 01 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
Jan 06 Javascript
JavaScript实现打字效果的方法
Jul 10 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
微信小程序 获取相册照片实例详解
Nov 16 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
JS自动生成动态HTML验证码页面
Jun 14 Javascript
Angularjs 1.3 中的$parse实例代码
Sep 14 Javascript
vuex操作state对象的实例代码
Apr 25 Javascript
JavaScript创建对象方法实例小结
Sep 03 Javascript
vue实现五子棋游戏
May 28 Javascript
JavaScript中MutationObServer监听DOM元素详情
Nov 27 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中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
深入解析Vue 组件命名那些事
2017/07/18 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
python实现拼图小游戏
2020/02/22 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
Python 多进程原理及实现
2020/12/21 Python
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
什么是就业协议书
2014/04/17 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
医院标语大全
2014/06/23 职场文书
影视广告专业求职信
2014/09/02 职场文书
教师个人学习总结
2015/02/11 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python
OpenCV-Python实现轮廓拟合
2021/06/08 Python
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS