中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Vue.js中Line第三方登錄api

發布時間:2020-06-29 17:37:27 來源:億速云 閱讀:417 作者:清晨 欄目:開發技術

小編給大家分享一下如何實現Vue.js中Line第三方登錄api,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

國際化的項目就會用用到一些第三方的登錄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/oauth3/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 &#8203;

如何實現Vue.js中Line第三方登錄api &#8203;

看完了這篇文章,相信你對如何實現Vue.js中Line第三方登錄api有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

门头沟区| 江西省| 宣威市| 盐城市| 凉山| 靖边县| 永福县| 安溪县| 淄博市| 凉城县| 达尔| 福安市| 墨竹工卡县| 宁远县| 万荣县| 郓城县| 墨脱县| 慈溪市| 滨州市| 象州县| 神池县| 浦东新区| 柳江县| 博湖县| 乐亭县| 孟村| 静海县| 游戏| 罗甸县| 兴仁县| 社旗县| 繁峙县| 明水县| 利津县| 镶黄旗| 泸定县| 沈丘县| 安宁市| 台前县| 襄垣县| 吉安县|