H5 WeChatパブリックアカウント認証を実装するための簡単な手順

H5 WeChatパブリックアカウント認証を実装するための簡単な手順

序文

昨日、h5 WeChat認証の実装が必要なプロジェクトがありました。したがって、この機能を完了するには 2 時間かかりました。​

作業開始前の準備

プロセスの説明 [事前に伝えられたプロセス]

  1. WeChat 認証には時間制限があります。一定期間内に一度認証されると、再度クリックして確認する必要はありません。 WeChat をアンインストールして再インストールする場合でも、認証を再確認する必要があります。
  2. 初めて承認を確認する場合でも、承認後でも、WeChat サーバーを使用して、バックエンド インターフェイス コールバックへのコールバックを承認できます。
  3. WeChat 認証コールバック後、コードと状態パラメータが返されます。バックエンドはコードを通じて accessToken を取得し、accessToken を通じてユーザー情報を取得できます。
  4. バックエンドがサーバー コールバックを受信した後、フロントエンドにコールバックするときに 2 つの主要なフィールドがあります。isAuth は承認されているかどうかを表し、isBindFlag はシステムに登録され、ログインされているかどうかを表します。ここで、現在のシステムではユーザー認証登録が必要なため、これら 2 つのフィールドが存在します。

ドメイン名、ポート

  • 準備されたドメイン名 - 公安部に登録されたドメイン名
  • ポート番号は80です。

ドメイン名とポート番号は、WeChat パブリック アカウントの構成と WeChat サーバー コールバックにドメイン名とポート 80 が必要であるため、必須です。

ここでは、同じドメイン名とポートがフロントエンドとバックエンドの IP アドレスに適合され、nginx 統合プロキシを介して処理されます。

仕事の準備

  • ドメイン名: http.xxx.cn
  • フロントエンドリソースの展開: http.xxx.cn
  • バックエンドコールバックインターフェース: http.xxx.cn/api/auth

WeChatパブリックアカウントを設定する

ドメイン名の設定

検証ファイルをサーバーのルート パスにアップロードします。そうしないと、ドメイン名の構成を保存できません。

ホワイトリストの設定

コードを書く

React をインポートし、{useEffect} を "react" から取得します。
"@tarojs/components" から View をインポートします。

エクスポートデフォルト()=> {
  使用効果(() => {
    // バックエンド コールバックのパスの形式: http://xxx.cn/#/pages/webAuthorization?bindFlag=0&openid=xxxxxxxxxxx&unionid=null&isAuth=true
    
    var isBindFlag = false、isAuth = false、opendId = '', paramsArray = [];


    /*
     * 省略されたコード: アドレスの決定、パラメータの処理、isAuth、isBindFlag、openIdへの割り当て
     */ 

    if (!isAuth) { // 権限がありません window.location.href=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${'xxxxxxx'}&redirect_uri=http://xxxxx/api/auth?response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect`;
    } else if (!isBindFlag) { // 登録されていません window.location.href = '#/pages/login'
    } else { // ログイン window.location.href = '#/pages/index'
    }
  }, []);

  戻る (
    <表示>
    </表示>
  );
};

要約する

H5 WeChatパブリックアカウント認証に関するこの記事はこれで終わりです。WeChatパブリックアカウント認証に関するより関連性の高いコンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChat公式アカウント - ユーザー情報取得手順(Web認証取得)
  • WeChat パブリックアカウントは、スキャンコードを実現し、WeChat ユーザー情報を取得します (Web ページ認証)
  • WeChatパブリックアカウントWebページの認証ログインとコードが使用されているソリューションの詳細な説明
  • WeChat 公式アカウント OAuth2.0 Web 認証問題の簡単な分析

<<:  MySQLに画像を保存する方法

>>:  nginx httpモジュールのデータ保存構造の概要

推薦する

FileZilla_Server:425 データ接続を開けない問題を解決する方法

FileZilla Serverをサーバーにインストールすると、425データ接続を開けない問題が発生...

ウェブサイトのパフォーマンス: 画像とCookieの最適化、モバイルアプリケーションの最適化

前のセクションでは、コンテンツ、サーバー、JavaScript、CSS など、Web サイトのパフォ...

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...

MySQL データベースは XA 仕様をどのように実装しますか?

MySQL 一貫性ログMySQL データベースの電源が切れた場合、コミットされていないトランザクシ...

IframeとFRAMEの違いの分析

1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...

js シンプルで粗雑なパブリッシュとサブスクライブのサンプルコード

パブリッシュ/サブスクライブとは何ですか?例を挙げてみましょう。あなたは服を買うために店に行きます。...

CSS3 box-shadow プロパティの詳細な例

CSS3 - 影の追加(ボックスシャドウの使用) CSS3 - div またはテキストに影を追加する...

Docker execは複数のコマンドを実行します

docker exec コマンドは、実行中のコンテナ内でコマンドを実行できます。 docker ex...

12個のJavascriptテーブルコントロール(DataGrid)が整理されています

DataGrid コントロールの DataSource プロパティがデザイン時に設定されている場合、...

ページキャッシュを無効にするいくつかの方法を共有する

本日、開発中に、顧客からページをキャッシュしないように要求される方法に遭遇しました。調べたところ、ペ...

ウェブデザインのためのロイヤルブルーのカラーマッチング入門

古典的な色の組み合わせは力と権威を伝え、強いロイヤルブルーはあらゆる古典的な色の組み合わせの中心的な...

MySQLのSQLモードの特徴のまとめ

序文SQL モードは、MySQL がサポートする SQL 構文と、実行されるデータ検証チェックに影響...

Vue Element フロントエンドアプリケーション開発 テーブルリスト表示

1. リストクエリインターフェースの効果コード処理ロジックを紹介する前に、まずは感覚的に理解し、レン...