vue WeChat認証ログインの操作方法
今回は、vue WeChat 認証ログインの操作方法と、vue WeChat 認証ログインを操作する際の注意事項について説明します。以下は実際のケースです。見てみましょう。
Background
vue は、WeChat 認証のためにフロントエンドとバックエンドの開発を分離します
Scenario
アプリは、ユーザーがページをクリックすると、WeChat でログインを認証します。ユーザー情報を取得するため。
問題: 固定の h5 アプリケーションのホームページがありません。承認後のリダイレクト URL はパラメータがあり、非常に長いです
私は開発過程でさまざまな方法を試してきましたが、毎回それは私の気分を説明するのに十分ではありません。井戸に飛び込む体験。
1. 最初に、フロントエンドが WeChat 接続をリクエストし、コードを返し、そのコードを使用してバックエンド インターフェイスにトークンを取得します。その後、他の人のブログでこの方法は良くないと言っているのを見ました。バックエンド インターフェイスを直接リクエストし、バックエンドで URL を返すのが最善です。ジャンプするには、バックグラウンドで URL を返し、フォアグラウンドでジャンプする最も伝統的な方法を使用しました。
async ReturnGetCodeUrl() { let { data } = await getWxAuth({}); if (data.status == 200) { window.location.href = data.url; // 返回的结果 // redirect_uri重定向的url是后台的地址,后台就是可拿到code,获取token // https://open.weixin.qq.com/connect/oauth2/authorizeappid=xxxxxxxxxxxxxxxxxx&redirect_uri=***url***&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect } },
2. WeChat の認証には何度もホップする必要があり、インターネットから解決策を確認したところ、結局のところ、リンクに戻るのが面倒でした。リンク自体を redirect_uri パラメータとして使用しました。おそらく次のようになります
https://open.weixin.qq.com/connect/oauth2/authorizeappid=xxxxxxxxxxxxxxxxxx&redirect_uri=*www.admin?http://www.xxx。 com/h5/product*&response_type=code&scope =snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect
ただし、フロントエンド リンクは次のようになり、パラメーターがあり、非常に長いです。 WeChatは私がこんなに醜いことを受け入れられないかもしれません。 /(ㄒoㄒ)/~~
ついに諦めたこの解決策について3. フロントエンドアドレスをリダイレクトしてトークンを取得する方法を検討しますhttp://www.xxx.com/h5/product?id=6RedfM5O4xeyl0AmOwmyipkHr8AQCv-hYXZVAIFTwDXOsWSKqgu3VaCmaKserBnacvWuzO3Zwdf8y%2F2K2lvqkluV6Ane4LCAKyPU2 tPAPj%2FMF6F6xkzp27GqqpNya7HbdEA34qGQJvHIA9tlIMkeEWid1112b8oZuP3FQBwU%2F%2FMaSrovzQP6LlzWamyPnv0vMizu8uh0ItpJOQUV1m%2FtemF3U9KuHo8rXCw%3D
次のステップは、まだ多くのバグがあるので、後で最適化します。または、main.js の
routing グローバル フックを変更して、ローカルに user_token があるかどうかを確認します。これは、トークンがなく、現在のルートが作成者 (ページ) でない場合に返されます。認証用に特別に設計されています)、現在の URL (www.xxx.com/h5/product?id=6RedfM5O4xeyl0AmOwm など) を保存し、作成者を入力します。ローカルにトークンがある場合、つまり、ユーザーが以前にトークンを承認していて、vuex にユーザー情報がない場合、ユーザー情報を取得して vuex に保存します。ここで発生する問題は、トークンが期限切れになることです。次に、ローカルの user_token を削除します。 window.localStorage.removeItem("user_token"); この時点で、ページ router.go(0) を更新します。トークンがない場合は、もう一度実行します。
router.beforeEach((to, from, next) => { // 第一次进入项目 let token = window.localStorage.getItem("user_token"); if (!token && to.path != "/author") { window.localStorage.setItem("beforeLoginUrl", to.fullPath); // 保存用户进入的url next("/author"); return false; } else if (token && !store.getters.userInfo) { //获取用户信息接口 store .dispatch("GetUserInfo", { user_token: token }) .catch(err => { window.localStorage.removeItem("user_token"); router.go(0); return false; }); } next(); });
<template> <p> 授权中。。。 </p> </template> <script> import { getWxAuth } from '@/service/getData' import { GetQueryString } from '@/utils/mixin'; export default { data() { return { token: '', }; }, computed: { }, created() { this.token = window.localStorage.getItem("user_token"); //判断当前的url有没有token参数,如果不存在那就跳转到微信授权的url //就是前面说的ReturnGetCodeUrl方法 if (!GetQueryString("token")) { this.ReturnGetCodeUrl(); } else { //如果有token,如http://www.xxxx.com/h5/author?token=xxxxxxxxx&msg=200,这里的参数就是后台重定向到前台http://www.xxxx.com/h5/author,并携带的参数。这样就可以拿到我们想要的token了 //判断一下后台返回的状态码msg,因为可能出现微信拿不到token的情况 let msg = GetQueryString("msg") if (msg = 200) { this.token = GetQueryString("token"); //存储token到本地 window.localStorage.setItem("user_token", this.token); //获取beforeLoginUrl,我们的前端页面 let url = window.localStorage.getItem("beforeLoginUrl"); //跳转 this.$router.push(url); //删除本地beforeLoginUrl removeLocalStorage("beforeLoginUrl"); }else{ //msg不是200的情况,可能跳到404的错误页面 } } }, methods: { async ReturnGetCodeUrl() { let { data } = await getWxAuth({}); if (data.status == 200) { window.location.href = data.url; } }, }, watch: {}, components: {}, mounted: function () {} } </script> <style lang='scss' scoped> </style>
export const GetQueryString = name => { var url = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var newUrl = window.location.search.substr(1).match(url); if (newUrl != null) { return unescape(newUrl[2]); } else { return false; } };
vue の select 組み込みコンポーネントを使用する手順の詳細な説明
以上がvue WeChat認証ログインの操作方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









一部のプレイヤーは、発売時に PS4 または PS5 で奇妙な問題に遭遇しています。たとえば、PlayStation Network へのログインが失敗しても、インターネット接続は正常である場合に、これが原因で問題が発生する可能性があります。ログイン情報を入力するときにエラーが発生し、PSParty チャットに参加できない場合があります。同様の問題が発生した場合は、このガイドが問題の解決に役立つ可能性があります。 PlayStationNetworkSign-in の横に、「AnErrorHaveAreAre」というエラー メッセージが表示され、「失敗」と表示されます。 IP アドレス、インターネット接続、接続速度の取得などの他のパラメーターは正常に完了しました。では、ここで何が問題になるのでしょうか?あなたに仕事をあげます

AADSTS7000112 エラーにより、Microsoft アカウントを使用してアプリにログインできなくなり、ご不便をおかけする場合があります。この記事では、この問題を解決し、通常のログイン エクスペリエンスを復元するのに役立つ解決策を紹介します。ログイン: 申し訳ありませんが、ログインできません。 AADSTS7000112: アプリケーションが無効になりました。幸いなことに、いくつかの簡単な提案に従うことでエラーを修正できます。エラーコード AADSTS7000112 とは何ですか?エラー コード AADSTS7000112 は、Microsoft の Azure Active Directory への接続に問題があることを示します。通常、これは、ログインしようとしている Microsoft アプリケーションがブロックされていることが原因である可能性があります。

PyCharm は非常に人気のある Python 統合開発環境 (IDE) であり、Python 開発をより効率的かつ便利にするための豊富な機能とツールを提供します。この記事では、PyCharm の基本的な操作方法を紹介し、読者がすぐに使い始めてツールの操作に習熟できるように、具体的なコード例を示します。 1. PyCharm をダウンロードしてインストールします。 まず、PyCharm 公式 Web サイト (https://www.jetbrains.com/pyc) にアクセスする必要があります。

sudo (スーパーユーザー実行) は、一般ユーザーが root 権限で特定のコマンドを実行できるようにする、Linux および Unix システムの重要なコマンドです。 sudo の機能は主に次の側面に反映されています。 権限制御の提供: sudo は、ユーザーにスーパーユーザー権限を一時的に取得することを許可することで、システム リソースと機密性の高い操作を厳密に制御します。一般のユーザーは、必要な場合にのみ sudo を介して一時的な権限を取得できるため、常にスーパーユーザーとしてログインする必要はありません。セキュリティの向上: sudo を使用すると、日常的な操作中に root アカウントの使用を回避できます。すべての操作に root アカウントを使用すると、誤った操作や不注意な操作には完全な権限が与えられるため、予期しないシステムの損傷につながる可能性があります。そして

Enterprise WeChat の電子メール アドレスにログインするにはどうすればよいですか? Enterprise WeChat APP で電子メール アドレスにログインできますが、ほとんどのユーザーは電子メール アドレスにログインする方法がわかりません。次は、その方法に関するグラフィック チュートリアルです。興味のある方は編集者が用意したEnterprise WeChatのメールアドレスにログインして、ぜひ覗いてみてください! Enterprise WeChat 使用チュートリアル Enterprise WeChat メールへのログイン方法 1. まず Enterprise WeChat APP を開き、メイン ページの下部にある [ワークベンチ] に移動し、クリックして特別なエリアに移動します; 2. 次に、ワークベンチでエリアで、[Enterprise Mailbox] サービスを選択します; 3. 次に、企業メール機能ページに移動し、下部の [バインド] または [メールの変更] をクリックします; 4. 最後に、ページで [QQ アカウント] と [パスワード] を入力します以下に示すように、メールにログインします。

LinuxDeploy の操作手順と注意事項 LinuxDeploy は、ユーザーが Android デバイスにさまざまな Linux ディストリビューションを迅速に展開できるようにする強力なツールで、ユーザーはモバイル デバイスで完全な Linux システムを体験できます。この記事では、LinuxDeploy の操作手順と注意事項を詳しく紹介し、読者がこのツールをより効果的に使用できるように、具体的なコード例を示します。操作手順: Linux のインストールDeploy: まず、インストールします
![GeForce Experience のログインがフリーズする [修正]](https://img.php.cn/upload/article/000/887/227/171084420790568.png?x-oss-process=image/resize,m_fill,h_207,w_330)
この記事では、Windows 11/10 での GeForceExperience ログイン クラッシュの問題を解決する方法を説明します。通常、これは、不安定なネットワーク接続、破損した DNS キャッシュ、古いまたは破損したグラフィックス カード ドライバなどが原因で発生する可能性があります。 GeForceExperience のログイン ブラック スクリーンを修正する 開始する前に、必ずインターネット接続とコンピューターを再起動してください。場合によっては、問題の原因が一時的なものである可能性があります。 NVIDIA GeForce Experience のログインの黒い画面の問題がまだ発生している場合は、次の提案を検討してください。 インターネット接続を確認する 別のインターネット接続に切り替える

おそらく多くのユーザーは、自宅に未使用のコンピュータを複数台持っており、長期間使用していなかったためにパワーオン パスワードを完全に忘れてしまったため、パスワードを忘れた場合の対処方法を知りたいと考えています。それでは、一緒に見てみましょう。 win10 起動パスワードの F2 キーを押し忘れた場合の対処方法 1. コンピューターの電源ボタンを押し、コンピューターの電源を入れるときに F2 キーを押します (コンピューターのブランドによって、BIOS に入るボタンが異なります)。 2. BIOS インターフェイスで、セキュリティ オプションを見つけます (コンピューターのブランドによって場所が異なる場合があります)。通常は上部の設定メニューにあります。 3. 次に、「SupervisorPassword」オプションを見つけてクリックします。 4. この時点で、ユーザーは自分のパスワードを確認できると同時に、その横にある [有効] を見つけて [無効] に切り替えることができます。
