参考までに、Vue シングル サインオンのデモをご紹介します。詳細を知りたい方のお役に立てれば幸いです。具体的な原則については、前回の記事を参照してください。 Vue でシングル サインオンを実装する方法は N 通りあります。ここでは 2 つのシステムがあります。1 つはログイン システムのメイン エンドです。すべてのサブシステムまたは関連システムのログイン プロセスはここで完了します。 具体的なコードは次のとおりです: login.vue <テンプレート> <div class="hello"> <h1>{{ メッセージ }}</h1> <button @click="handleLogin">クリックしてログイン</button> <button @click="rethome">前のページに戻る</button> </div> </テンプレート> <スクリプト> 'js-cookie' から Cookies をインポートします エクスポートデフォルト{ 名前: 'ホーム', データ () { 戻る { メッセージ: 'システム 1: 統合ログイン ページ', } }, マウントされた(){ const トークン = Cookies.get('app.token'); if(トークン){ this.rethome(); } }, メソッド: { ハンドルログイン() { var トークン = this.randomString(); Cookies.set('app.token',token, { expires: 1000, path: '/',domain: '.xxx,com' }) //ウェブサイトのメインドメイン名を記入します if(Cookies.get('app.returl')){ Cookies.set('app.loginname','System 2', { expires: 1000, path: '/',domain: '.xxx,com' })//ウェブサイトのメインドメイン名を記入}else{ Cookies.set('app.loginname','System 1', { expires: 1000, path: '/',domain: '.xxx,com' }) // ウェブサイトのメインドメイン名を記入します} this.rethome(); }, 戻る(){ var returl = Cookies.get('app.returl'); if(returl){ Cookies.set('app.returl','', { expires: 1000, path: '/',domain: '.xxx,com' })// ウェブサイトのメインドメイン名を入力します window.open(returl,"_parent"); }それ以外{ this.$router.push("/"); } }, ランダム文字列(e) { e = e || 32; var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678", a = tの長さ、 n = ""; (var i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a)); 戻るn } } } </スクリプト> <!-- CSS をこのコンポーネントのみに制限するために "scoped" 属性を追加します --> <スタイルスコープ> h1、h2 { フォントの太さ: 標準; } ul { リストスタイルタイプ: なし; パディング: 0; } li { 表示: インラインブロック; マージン: 0 10px; } { 色: #42b983; } </スタイル> ホーム.vue <テンプレート> <div class="hello"> <h1>{{ メッセージ }}</h1> <h3>ユーザー情報: {{token}}</h3> <h3>ログイン場所: {{loginname}}</h3> <button @click="logout">ログアウト</button> </div> </テンプレート> <スクリプト> 'js-cookie' から Cookies をインポートします エクスポートデフォルト{ 名前: 'ホーム', データ () { 戻る { メッセージ: 'システム 1 メイン ページ'、 トークン:''、 ログイン名:'' } }, マウントされた(){ const トークン = Cookies.get('app.token'); this.token = トークン; const loginname = Cookies.get('app.loginname'); this.ログイン名 = ログイン名; console.log(トークン); if(!トークン){ this.$router.push("/login"); }それ以外{ this.rehome() } }, メソッド: { ログアウト(){ Cookies.set('app.token','', { expires: 1000, path: '/',domain: '.xxx,com' })//ウェブサイトのメインドメイン名を記入します。Cookies.set('app.loginname','', { expires: 1000, path: '/',domain: '.xxx,com' })//ウェブサイトのメインドメイン名を記入します。this.$router.go(0) }, 戻る(){ var returl = Cookies.get('app.returl'); if(returl){ Cookies.set('app.returl','', { expires: 1000, path: '/',domain: '.xxx,com' })// ウェブサイトのメインドメイン名を入力します window.open(returl,"_parent"); }それ以外{ } }, } } </スクリプト> <!-- CSS をこのコンポーネントのみに制限するために "scoped" 属性を追加します --> <スタイルスコープ> h1、h2 { フォントの太さ: 標準; } ul { リストスタイルタイプ: なし; パディング: 0; } li { 表示: インラインブロック; マージン: 0 10px; } { 色: #42b983; } </スタイル> システムにログインしたら、手順の半分は完了です。次のステップは、コンポーネントを作成し、呼び出し側でメソッドを呼び出すことです。ここでは、ケース制御コードを紹介します。 <テンプレート> <div class="hello" v-show="false"> </div> </テンプレート> <スクリプト> 'js-cookie' から Cookies をインポートします エクスポートデフォルト{ 小道具:{ タイプ:{ タイプ:文字列、 デフォルト:'getdata' } }, 名前: 'ホーム', データ () { 戻る { トークン:''、 ログイン名:'' } }, マウントされた(){ const トークン = Cookies.get('app.token'); this.token = token?token:'ログインしていません'; const loginname = Cookies.get('app.loginname'); this.loginname = loginname?loginname:'ログインしていません'; この関数は、 }, メソッド: { 戻り値Fun(){ varデータ = { トークン:this.token, ログイン名:this.ログイン名 } this.$emit("clickFun",データ); } }, 時計: 'type': 関数 (値) { const トークン = Cookies.get('app.token'); this.token = token?token:'ログインしていません'; const loginname = Cookies.get('app.loginname'); this.loginname = loginname?loginname:'ログインしていません'; スイッチ(val){ ケース 'ログイン': console.log(トークン); if(トークン != ''){ このメソッドは、 }それ以外{ Cookies.set('app.returl','Local route', { expires: 1000, path: '/',domain: '.xxx,com' })// ウェブサイトのメインドメイン名を入力します window.open('ログイン システム アドレス',"_parent"); } 壊す; 'ログアウト'の場合: Cookies.set('app.token','', { expires: 1000, path: '/',domain: '.xxx,com' })// ウェブサイトのメインドメイン名を記述します Cookies.set('app.loginname','', { expires: 1000, path: '/',domain: '.xxx,com' })// ウェブサイトのメインドメイン名を記述します。 this.token = 'ログインしていません'; this.loginname = 'ログインしていません'; このメソッドは、 壊す; ケース 'getdata': このメソッドは、 壊す; } } } } </スクリプト> <!-- CSS をこのコンポーネントのみに制限するために "scoped" 属性を追加します --> <スタイルスコープ> h1、h2 { フォントの太さ: 標準; } ul { リストスタイルタイプ: なし; パディング: 0; } li { 表示: インラインブロック; マージン: 0 10px; } { 色: #42b983; } </スタイル> 呼び出しコードの例は次のとおりです。 <テンプレート> <div class="hello"> <ログイン @clickFun="returnFun" :type ="type"></ログイン> <h1>{{ メッセージ }}</h1> <h3>ユーザー情報: {{token}}</h3> <h3>ログイン場所: {{loginname}}</h3> <button @click="login">ログイン</button> <button @click="logout">ログアウト</button> </div> </テンプレート> <スクリプト> 'js-cookie' から Cookies をインポートします '@/pages/login' からログインをインポートします エクスポートデフォルト{ 名前: 'ホーム', データ () { 戻る { メッセージ: 'システム 2: 親コンポーネント ページ', トークン:'ログインしていません', loginname:'ログインしていません', タイプ: 'getdata', } }, マウントされた(){ }, メソッド: { ログイン(){ this.type = "ログイン"; }, ログアウト(){ this.type = "ログアウト"; }, returnFun(値){ console.log(値、サブコンポーネントの戻り値) 定数トークン = 値.トークン; this.token = token?token:'ログインしていません'; const ログイン名 = 値. ログイン名; this.loginname = loginname?loginname:'ログインしていません'; } }, コンポーネント:{ ログイン } } </スクリプト> <!-- CSS をこのコンポーネントのみに制限するために "scoped" 属性を追加します --> <スタイルスコープ> h1、h2 { フォントの太さ: 標準; } ul { リストスタイルタイプ: なし; パディング: 0; } li { 表示: インラインブロック; マージン: 0 10px; } { 色: #42b983; } </スタイル> この時点で、シンプルなシングル サインオン システムの構築が完了しました。このアイデアに従って改善を続け、最終的に対応する制御を行うことができます。もし役に立つなら、ぜひフォローしてください。一緒に議論し、学び、一緒に進歩できるように、技術ドキュメントを定期的に更新します。 Vue シングル サインオン制御コードの共有に関するこの記事はこれで終わりです。Vue シングル サインオンに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ユーザーのニーズがマーケティング指向のデザインにつながる
>>: Tomcat が localhost に通常アクセスすると 404 を報告する問題の解決方法
Python8のインストールを最小化した後、Python3.8.1をインストールしました。オンライン...
MySQL へのリモート接続が失敗する場合は、次の理由が考えられます。 1. 若い男性/女性の方は、...
<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...
目次Dockerfileを使用してDockerイメージを構築する1. Dockerfile とは何で...
序文Ubuntu 18.04 LTS で IP アドレスを設定する方法は、これまで使用されていた設定...
float の使用例左サスペンション: float:left;右サスペンション: float:rig...
目次1. 遅いところはどこですか? 2. 不要なデータをクエリしましたか? 1. 不要なレコードをク...
質問: index.html で、iframe が son.html を導入します。son.html...
1. システムに必要な libaio ソフトウェアがインストールされていることを確認します。インスト...
目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...
[概要] この記事では、自作の Docker プラットフォームをベースに完全な ELK システムを素...
1 インストールMYSQL 公式サイトから対応する解凍バージョンをダウンロードし、必要なディレクトリ...
序文フロントエンドで非常に便利な、小さなアイコン付きの検索ボックスを作成する方法をご紹介します。エフ...
目次まずwgetをインストールするヘルプマニュアルを見る1. wgetを使用して単一のファイルをダウ...
序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...