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 27 Javascript
初学Javascript的一些总结
Nov 03 Javascript
基于jquery的大众点评,分类导航实现代码
Aug 23 Javascript
javascript 动态创建表格
Jan 08 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
Dec 31 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
Jan 26 Javascript
Vue2.0 多 Tab切换组件的封装实例
Jul 28 Javascript
JavaScript使用Math.random()生成简单的验证码
Jan 21 Javascript
Vue-cli3项目引入Typescript的实现方法
Oct 18 Javascript
Angular利用HTTP POST下载流文件的步骤记录
Jul 26 Javascript
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
vue-cli中实现响应式布局的方法
Mar 02 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
Python调用命令行进度条的方法
2015/05/05 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
flask中的wtforms使用方法
2018/07/21 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
保安部任务及岗位职责
2014/02/25 职场文书
拔河比赛口号
2014/06/10 职场文书
创先争优活动心得体会
2014/09/04 职场文书
2015年世界水日活动总结
2015/02/09 职场文书
社区国庆节活动总结
2015/03/23 职场文书
检讨书范文大全
2015/05/07 职场文书
MySQL插入数据与查询数据
2022/03/25 MySQL
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android