1. 程式人生 > 其它 >vue前後端分離實現SSO單點登入(跨域)

vue前後端分離實現SSO單點登入(跨域)

技術標籤:前端通訊

1.首先在a(www.a.com)網站下建立資料夾a.vue,通過iframe引入B網站登入頁面

<iframe
      ref="iframe"
      src="http://www.b.com/#/login"
      style="height: 400px; width: 1200px; margin-bottom: 100px; display: none"
    ></iframe>

2.a 通過‘postMessage’傳值給b網站 info為使用者標識內容

this.$refs.iframe.contentWindow.postMessage(info, '*')

3.b網站接受值

window.addEventListener('message', function (e) {
      if (e.source !== window.parent) return
      if (e.type !== 'webpackWarnings') {
        // console.log(typeof e.data)
        if (typeof e.data === 'string') {
          // console.log(e.data)
          let res = JSON.parse(e.data)
          if (typeof res === 'object') {
            // console.log(1)
            localStorage.setItem('user', e.data)
            localStorage.setItem('toke