国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue釘釘授權(quán)第三方網(wǎng)頁登錄,掃碼登錄,vue hash模式下回調(diào)地址錯誤踩坑

這篇具有很好參考價值的文章主要介紹了vue釘釘授權(quán)第三方網(wǎng)頁登錄,掃碼登錄,vue hash模式下回調(diào)地址錯誤踩坑。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

vue接入釘釘?shù)卿浖坝龅降膯栴}


一、引入釘釘掃碼登錄JSSDK

在index.html中引入

<script src="https://g.alicdn.com/dingding/h5-dingtalk-login/0.21.0/ddlogin.js"></script>

二、使用步驟

1.通過打開授權(quán)頁面的方式

釘釘?shù)呐渲檬褂煤蠖伺渲煤玫模ㄟ^接口返回,參數(shù)主要是重定向的url地址(需要encode),和client_id。
代碼如下:

// 跳轉(zhuǎn)鏈接釘釘操作
    ddHrefLogin() {
      const { agentId, url } = this.ddConfig;
      const cloneUrl = encodeURIComponent(url);
      const hrefUrl = `https://login.dingtalk.com/oauth2/auth?redirect_uri=${cloneUrl}&response_type=code&client_id=${agentId}&scope=openid&state=dddd&prompt=consent`;
      window.open(hrefUrl, '_self');
    },

掃碼完成之后,頁面會重定向到配置的地址上,附帶authCode就是需要這個參數(shù)
在created生命周期中使用自己項目的登錄接口

// 獲取到釘釘返回的code就請求登錄接口
    if (this.$route.query.authCode) {
      this.handleCodeLogin(this.$route.query.authCode);
    }

2.通過掃描二維碼的方式登錄

代碼如下:

ddLoginInit() {
      const _this = this;
      window.DTFrameLogin(
        {
          id: "qr-code-scan", // 裝釘釘二維碼的盒子
          width: 300,
          height: 300,
        },
        {
          redirect_uri: encodeURIComponent(_this.ddConfig.url),
          client_id: _this.ddConfig.agentId,
          scope: "openid",
          response_type: "code",
          prompt: "consent",
          state: "ddd",
        },
        (loginResult) => {
          const { redirectUrl, authCode, state } = loginResult;
          console.log("loginResult", loginResult);
          console.log("_this.ddConfig", _this.ddConfig);
          // 這里可以直接進行重定向
          window.location.href = redirectUrl;
          // 也可以在不跳轉(zhuǎn)頁面的情況下,使用code進行授權(quán)
          console.log(authCode);
        },
        (errorMsg) => {
          // 這里一般需要展示登錄失敗的具體原因
          alert(`Login Error: ${errorMsg}`);
          console.log("_this.ddConfig", _this.ddConfig);
        }
      );
    },

取到authCode之后做自己的操作

三、踩坑

vue的hash模式,釘釘重定向回來的地址有誤,路徑錯誤無法獲取到$route.query.authCode

期望得到的回調(diào)地址:

https://xxxx/#/login?authCode=faf0517xxxxxxxxxxxxxxx96373&state=dddd

實際在hash模式下得到的回調(diào)地址:

https://xxxx/?authCode=faf0517xxxxxxxxxxxxxxx96373&state=dddd#/login

四、解決方法

重新組裝回調(diào)之后的路徑

created() {
    //code是登錄所需最終參數(shù)
    let url = new URL(window.document.URL); // 獲取路徑
    const code = this.$utils.string.getUrlKeyVal("authCode"); // 通過路徑獲取authCode
    if (url.search && code) { // 釘釘重定向地址錯誤 重新組裝路徑
      window.open(`${url.origin}${url.hash}&authCode=${code}`, '_self')
    }
    // 獲取到釘釘返回的code就請求登錄接口
    if (this.$route.query.authCode) {
      this.handleCodeLogin(this.$route.query.authCode);
    }
  },

獲取路徑中對應(yīng)key的值方法

const getUrlKeyVal = (key) => {
  var value = "";
  ///獲取當前頁面的URL
  var sURL = window.document.URL;
  ///URL中是否包含查詢字符串
  if (sURL.indexOf("?") > 0) {
    //分解URL,第二的元素為完整的查詢字符串
    //即arrayParams[1]的值為【id=1&action=2】
    var arrayParams = sURL.split("?");
    //分解查詢字符串
    //arrayURLParams[0]的值為【id=1 】
    //arrayURLParams[2]的值為【action=add】
    var arrayURLParams = arrayParams[1].split("&");
    //遍歷分解后的鍵值對
    for (var i = 0; i < arrayURLParams.length; i++) {
      //分解一個鍵值對
      var sParam = arrayURLParams[i].split("=");
      if (sParam[0] == key && sParam[1] != "") {
        //找到匹配的的鍵,且值不為空

        value = sParam[1];

        break;
      }
    }
  }
  return value;
},

總結(jié)

以上就是vue釘釘?shù)卿浀膬?nèi)容,主要就是vue hash模式下的坑,導(dǎo)致回調(diào)地址錯誤。文章來源地址http://www.zghlxwxcb.cn/news/detail-643074.html

到了這里,關(guān)于vue釘釘授權(quán)第三方網(wǎng)頁登錄,掃碼登錄,vue hash模式下回調(diào)地址錯誤踩坑的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JAVA 微信公眾號授權(quán)給開放平臺(第三方平臺)開發(fā)流程及第三方平臺代公眾號實現(xiàn)業(yè)務(wù)

    JAVA 微信公眾號授權(quán)給開放平臺(第三方平臺)開發(fā)流程及第三方平臺代公眾號實現(xiàn)業(yè)務(wù)

    一 、開放平臺賬戶注冊及開發(fā)配置請參考我之前的文章 開發(fā)前準備工作。 二、授權(quán)流程 官方文檔細節(jié)比較多 我說的比較直白 (1)首先 啟動票據(jù)推送服務(wù) (2)接收消息→解密→驗證并獲取票據(jù)→保存票據(jù) component_verify_ticket (3)獲取第三方平臺調(diào)用憑證 component_access_tok

    2024年03月15日
    瀏覽(34)
  • 擴展ABP的Webhook功能,推送數(shù)據(jù)到第三方接口(企業(yè)微信群、釘釘群等)

    ASP.NET Boilerplate(以下簡稱ABP)在v5.2(2020-02-18)版本中發(fā)布了Webhook功能,詳細說明,請參見:官方幫助鏈接; ASP.NET ZERO(以下簡稱ZERO)在v8.2.0(2020-02-20)版本中發(fā)布了Webhook功能; 我們系統(tǒng)是在2021年4月完成了對Webhook功能的改造:內(nèi)部接口(用戶自行設(shè)定接口地址的)、第

    2024年02月09日
    瀏覽(25)
  • Gitee第三方登錄

    Gitee第三方登錄

    寫這篇文章時,參考了一位大佬的文章,算是把大佬文章里一些不詳細的部分補充完整了,但是核心的代碼沒有什么改動,只是拋棄掉了那個重定向的工具類,以下是大佬文章的鏈接:http://t.csdn.cn/0L7T4 1、登錄gitee 官網(wǎng):https://gitee.com/ 2、注冊或登錄賬號 3、進入 設(shè)置》第三

    2024年02月12日
    瀏覽(16)
  • Springboot整合第三方登錄

    Springboot整合第三方登錄

    Springboot整合第三方登錄 為什么采用第三方登錄 ? 采用第三方登錄可以避免重新注冊賬號的繁瑣,也不需要再為密碼和昵稱發(fā)愁,而第三方登錄有一個比較好用的包,里面整合了多種第三方登錄,開箱即用,非常方便。就是JustAuth,網(wǎng)址https://www.justauth.cn/。 整合第三方登錄

    2024年02月09日
    瀏覽(115)
  • 微信小程序第三方登錄

    目錄 小程序第三方登錄操作流程如下: 1.第一步 2.第二步 2.第三步 4.第四步 5.第五步 注意:如果第一步?jīng)]打印出來,看看微信模擬器上的Id有沒有更改,或則去源碼試圖,weixinId更改 進入uniapp官網(wǎng)=Api=第三方服務(wù)=登錄=微信小程序登錄 創(chuàng)建一個觸發(fā)事件,獲取頭像和名稱 調(diào)用

    2024年02月13日
    瀏覽(86)
  • PHP Twitter 推特 第三方登錄

    PHP Twitter 推特 第三方登錄

    twitter登錄文檔 開發(fā)者平臺 申請成為開發(fā)流程按引導(dǎo)操作就可以了, 但是要注意信息填寫要真實完善的信息, 否則容易被拒絕(被拒絕可能不能二次申請, 之前不能, 現(xiàn)在不知道能不能) 目前推特一個號只能開通一個免費應(yīng)用, 可付費開通多個 設(shè)置基礎(chǔ)信息 User authentication setting

    2024年04月16日
    瀏覽(26)
  • 若依 關(guān)于 springsecurity 不用密碼登錄,自定義第三方登錄、免登錄

    用的是若依的前后端分離的版本,項目接口是給小程序用 openid 直接免登錄 找到登錄方法 他這是根據(jù)用戶名和密碼進行比對、由于密碼沒辦法轉(zhuǎn)換成明文 只能改成如下方法免登錄

    2024年02月07日
    瀏覽(15)
  • 使用開源項目JustAuth完成第三方登錄

    使用開源項目JustAuth完成第三方登錄

    JustAuth項目源碼地址:https://github.com/justauth/JustAuth JustAuth文檔地址:https://justauth.wiki/guide/quickstart/oauth/ 此demo的項目地址:xfeng520/JustAuthDemo (gitee.com) 開發(fā)者 指使用 JustAuth 的開發(fā)者 第三方 指開發(fā)者對接的第三方網(wǎng)站,比如:QQ平臺、微信平臺、微博平臺 用戶 指最終服務(wù)的真實

    2023年04月22日
    瀏覽(53)
  • uniapp 對接谷歌第三方登錄

    uniapp 對接谷歌第三方登錄

    1.登錄谷歌開發(fā)者后臺 https://console.developers.google.com/ 2.添加憑證 3.拿到客戶端id后,項目中配置google登錄: ?示例代碼:

    2024年04月29日
    瀏覽(19)
  • 前端使用firebase配置第三方登錄介紹(谷歌登錄,facebook登錄等)

    前端使用firebase配置第三方登錄介紹(谷歌登錄,facebook登錄等)

    點此處去 firebase 官網(wǎng) 點此處去 web端的谷歌登錄文檔 點此處去 facebook開發(fā)者官網(wǎng)鏈接 首先注冊一個賬號登錄firebase(可以使用谷歌賬號登錄) 然后創(chuàng)建項目(走默認配置就行了) 添加應(yīng)用(走默認配置),如圖所示,本文介紹web應(yīng)用。 應(yīng)用添加完畢后走項目設(shè)置-如下圖(

    2024年04月13日
    瀏覽(53)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包