1. appIDの申請と設定1. appidの取得方法WeChatパブリックプラットフォームにログイン 公式サイトリンク: https://mp.weixin.qq.com/ 初めてご利用の場合は、登録ボタンをクリックして登録する必要があります。アカウントをお持ちの場合は、スキャンしてログインするだけです。 公式サイトミニプログラムリンク: 2. AppIDの設定manifest.jsonに申請したWeChatアプレットIDを入力してください 2. 基本的なユーザーデータの取得
2.1. ユーザー情報の取得uni.getUserProfileを使用してユーザー認証を要求し、ユーザー情報を取得することができます。また、uni.getUserInfoを使用して、 認証が成功すると、取得されたユーザー情報は userInfo に保存されます。 ページセクション: <button class="login-btn" type="primary" @click="getUserInfo"> WeChatユーザーはワンクリックでログインできます</button> js部分: メソッド: { ユーザー情報を取得する() { uni.getUserInfo({ プロバイダー: 'weixin'、 成功: (res) => { console.log('getUserInfo', res); }, }); }, } 取得したユーザー基本データ(openid=》WeChatユーザー固有識別子なし) 2.2. ユーザー情報の取得 2uni.getUserInfoを使用してユーザー認証を要求し、ユーザー情報を取得できます。 ページは同じですが、js 部分は次のとおりです。 ユーザー情報を取得する() { uni.getUserProfile({ 説明: 'ログイン後にデータを同期できます', 言語: 'zh_CN', 成功: (res) => { console.log('getUserProfile', res); }, }); }, 取得したユーザー基本データ(openid=》WeChatユーザー固有識別子なし) 要約: 2 つの API uni.getUserProfile と uni.getUserInfo によって取得されるユーザー データは基本的に同じであり、どちらにも openid=》WeChat ユーザーの一意の識別子がありません。 3. ログインAPIを呼び出す3.1. ログインAPI uni.login メソッドを使用し、プロバイダー パラメータとして 'weixin' を入力し、成功した戻り値で errMsg = "login:ok" の場合、成功を意味します。 3.2. サンプルコードuni.ログイン({ プロバイダー: 'weixin'、 成功: (res) => { console.log('res-login', res); コード: console.log('コード', res.コード); res.errMsg == 'ログイン:ok'の場合{ //TODO コードを取得し、コード パラメータを使用してバックエンド インターフェイスを呼び出します} 4. 固有の識別情報の取得4.1. 公式ウェブサイトのドキュメント公式ウェブサイトのドキュメントでは、取得したコードを使用してWeChatログインインターフェースにopenidとsession_keyの取得を要求しています。 4.2. インターフェースの説明リクエストメソッド: GET
5. ユーザーをログインにバインドする
5.1. コード例(パッケージ化されていないもの)フロントエンド部分: /** * * ユーザー情報を取得する */ ユーザー情報を取得する() { // ローディングボックスを表示する uni.showLoading({ タイトル: 「読み込み中」 }); uni.getUserProfile({ 説明: 'ログイン後にデータを同期できます', 成功: async (obj) => { コンソールにログ出力します。 //アクションを呼び出してログイン インターフェイスを要求します // await this.login(obj); uni.ログイン({ プロバイダー: 'weixin'、 成功: (res) => { console.log('res-login', res); コード: console.log('コード', res.コード); res.errMsg == 'ログイン:ok'の場合{ ユニ 。リクエスト({ URL: 'http://127.0.0.1:8080/wxh5/wx/user/' + 'wx55822xxxx75e422' + '/ログイン/'、 データ: { コード: this.code, }, }) .then((res) => { //openidとsession_kを取得した後、独自のロジックconsole.log('Authorized login', res[1].data); コンソールにログ出力します。 コンソールにログ出力します。 // 何かを行う................ }); コンソールにログ出力します。 } }, }); }, 失敗: () => { uni.showToast({ タイトル: 「認証がキャンセルされました」 アイコン: 'エラー'、 マスク: true、 }); }, 完了: () => { //読み込みを非表示 uni.hideLoading(); }, }); }, バックエンド @GetMapping("/ログイン") パブリック文字列ログイン(@PathVariable 文字列 appid, 文字列コード) { if (StringUtils.isBlank(コード)) { 「空の jscode」を返します。 } 最終的な WxMaService wxService = WxMaConfiguration.getMaService(appid); 試す { WxMaJscode2SessionResult セッション = wxService.getUserService().getSessionInfo(コード); セッションキーを取得します。 セッションIDを取得する //TODO は独自のロジックを追加し、ビジネス関連のデータを関連付けることができます。 return JsonUtils.toJson(session); } キャッチ (WxErrorException e) { this.logger.error(e.getMessage(), e); e.toString() を返します。 } } 5.2. コード例(パッケージング)/** * * ユーザー情報を取得する */ ユーザー情報を取得する() { // ローディングボックスを表示する uni.showLoading({ タイトル: 「読み込み中」 }); uni.getUserProfile({ 説明: 'ログイン後にデータを同期できます', 成功: async (obj) => { // this.userInfo = obj.userInfo; // ログインを要求するアクションを呼び出すインターフェース uni.login({ プロバイダー: 'weixin'、 成功: async (res) => { コード: // console.log('コードを取得するにはログインしてください', res.code); res.errMsg == 'ログイン:ok'の場合{ this.loginAuth({を待つ ユーザープロファイル: obj, アプリID: 'wx558xxxxxxxxxxxxxxx2', コード: this.code, }); } }, }); }, 失敗: () => { uni.showToast({ タイトル: 「認証がキャンセルされました」 アイコン: 'エラー'、 マスク: true、 }); }, 完了: () => { //読み込みを非表示 uni.hideLoading(); }, }); }, }, ユーザー.js /** * WeChatユーザー認証ログイン、appidとコードパラメータの伝達、バックエンドインターフェースの呼び出しによるOpenidの取得 */ エクスポート関数 loginAuth(data) { リクエストを返す({ url: '/wx/user/' + data.appid + '/login/', データ: { コード: data.code、 }, }); } vuex ユーザーモジュール (user.js) // WeChat ユーザーがログインを許可し、appid と code パラメータを渡し、バックエンド インターフェイスを呼び出して Openid を取得します。 非同期ログイン認証(コンテキスト、データ) { console.log('データ', データ); ユーザープロファイルを作成します。 const { コンテンツ: res } = loginAuthを待機します({ アプリID: データ.アプリID、 コード: data.code、 }); // バックエンドから送信された JSON オブジェクトを解析します。const userAuthInfo = JSON.parse(res); 定数 openid = userAuthInfo.openid; // console.log('sessionKey', userAuthInfo.sessionKey); コンソールにログ出力します。 // vuexに保存してコミットする this.commit('user/setOpenid', userAuthInfo.openid); this.commit('user/setUserInfo', JSON.parse(userInfo.rawData)); }, 6. プロジェクトのオープンソースアドレス6.1. フロントエンドアプレット チョックイン 6.2. バックエンドweixin-java-ミニアプリ uni-app WeChat アプレット認証ログインに関するこの記事はこれで終わりです。より関連性の高い uni-app WeChat アプレット認証ログイン コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様が今後も 123WORDPRESS.COM を応援してくれることを願っています。 以下もご興味があるかもしれません:
|
>>: CSS3 で半透明の背景画像と不透明なコンテンツを実現する方法の例
1. MYSQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...
Windows 10 プラットフォームでの MySQL のインストール、構成、起動、ログイン、環境...
学習プロセス中にプッシュ イメージが常にタイムアウトすることがわかったため、Alibaba Clou...
序文Linux システムの運用および保守エンジニア職の面接を受ける場合は、次の 10 個の最も一般的...
VMware Workstation 14 ProにCentOS 7.0をインストールする具体的な方...
mysql テーブル作成 SQL ステートメントMySQL テーブルを作成するための一般的な SQL...
目次背景問題の説明原因分析シミュレーションする総括する背景日常の使用において、MySQL で個別また...
目次1. データベースを理解する1.1 データベースとデータ構造の関係1.2 なぜデータベースが必要...
序文MySql で主キーの競合または一意キーの競合が発生した場合、挿入方法に応じてエラーを回避するた...
1. Webデザイナーウォール 2. Veerleのブログ 3. チュートリアル9 4. UXブース...
目次1. jsメモリ2. 譲渡3. 浅いコピー4. ディープコピー序文:以下の記事を読む前に、記憶に...
この記事は、Free Code Camp の基本アルゴリズム スクリプト「文字列内の最長の単語を見つ...
この記事では、フォームデータの非同期送信を実装するためのJavaScriptの具体的なコードを参考ま...
ほとんどの場合、PC でファイルをアップロードするにはプラグインが使用され、フラッシュが導入されても...
http://www.cppcns.com/shujuku/mysql/283231.html 8....