検索

ホームページ  >  に質問  >  本文

angular.js - Angular によって開発されたシングルページ アプリケーション。Web ページの認証を正しく実装し、WeChat で js SDK を呼び出す方法

WeChat 公開アカウントの外部リンク Web ページが、angular を使用して シングルページ アプリケーション に作成されました。現在、WeChat Web ページの認証と js SDK

の呼び出しで問題が発生しています。

WeChat 認証

これまでに私が知っている限り、WeChat 認証を呼び出した後、シングルページ アプリケーションの入り口 URL は次のようになります (ドメイン名が example.com であると仮定します):

または (html5 mode が有効な場合) は次のようになります:

?code=aaabbb は、WeChat 認証後のリダイレクト時に入力されます。これによってのみ、WeChat 開発ドキュメント > コードの取得

を参照できます。

今のところ問題はありません


js SDK を呼び出す

Android WeChat クライアントは新しい H5 機能の PushState をサポートしていないため、URL ② は放棄されています (個人テスト、検証に合格しません)。そのため、入口 URL は次のようになります:

ここで問題が発生します。?code=aaabbb がない場合、署名検証に合格し、js SDK を正常に呼び出すことができます。ただし、実際の状況では、承認が必要な場合は、?code=aaabbb が必要です。が存在し、署名検証は失敗する必要があります。では、認証と SDK 呼び出しを利用できるようにするにはどうすればよいでしょうか? ? ?

私の現在の考えと実践は次のとおりです。WeChat が http://example.com?code=aaabbb/#/home へのリダイレクトを承認した後、コードを取得し、次に location.href = http://example.com/#/home を取得します。これにより、ユーザー情報を取得して SDK を正常に呼び出すことができますが、問題は、アプリケーションに入るたびに が 2 回 更新され、ユーザー エクスペリエンスが非常に低下することです。たとえ強迫性障害であっても受け入れられません。

信頼できる解決策を教えてください


phpcn_u1582phpcn_u15822807日前939

全員に返信(5)返信します

  • 黄舟

    黄舟2017-05-15 17:14:10

    純粋なフロントエンドは実装できません。許可コールバック ページのドメイン名をバックエンド サーバーに設定し、バックエンドからリダイレクトすることのみ可能です。

    返事
    0
  • PHPz

    PHPz2017-05-15 17:14:10

    indexOf()を使用してコード値を取得できます

    リーリー

    これでコード値を取得できます

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:14:10

    純粋なフロントエンドは実装できません。たまたま、私は最近同様のプロジェクトを実行しましたが、これも angularjs を使用し、angular-route.js を通じて単一ページのプログラムを実装しました。

    単一ページ プログラム (index.html) で ajax を介してバックグラウンド インターフェイスを呼び出します。
    成功した場合は、戻り値: {status:true,...}
    ログインしておらず失敗した場合、戻り値: {status:falst,next: 'login',errmsg :'Error'}
    その他のエラーが返されました: {status:falst,next:'次の操作',errmsg:'Error'}

    戻りステータスが result.status==false の場合、 result.next=='login':

    リーリー

    ログインが成功したことを確認した後、SESSIONを設定した後、シングルページプログラム(index.html)にジャンプします。
    すでにログインしているため、プログラムは引き続きインターフェイスを呼び出します。 、次を返します: {status:true ,...}

    返事
    0
  • 某草草

    某草草2017-05-15 17:14:10

    元のポスターは location.href=""?

    になってしまいました

    返事
    0
  • PHP中文网

    PHP中文网2017-05-15 17:14:10

    これをどうやって解決すればよいでしょうか? 私も Vue を使って WeChat を開発する予定です。

    返事
    0
  • キャンセル返事