今日、私は誤ってWeChat JSSDKのデバッグを開き、デバッグ情報が常に署名のエラーを促していることを発見しました。 APIの「時折」は2日前に有効になりませんでした。コードが実行されていないためではなく、署名が正しくないためです! 、これは100%再現性のあるエラーです
しかし、スパがリフレッシュされたばかりであるか、ロード後に真ん中にジャンプしない限り、署名は正しいでしょう。
しかし、ルートが変更されると、新しい「ジャンプ」ページに再署名した後、署名エラーが発生しました。私たちの署名は明らかに正しいです。比較のために!
後で大きな発見。 。 。実は
WeChatによって署名されたURLは、SPAによってロードされた最初のページのURLのみを認識しているように見えるため、スパの入り口ページをロードするときに一度署名するだけです。 。 。 window.location.hrefジャンプは、実際にはスパの読み込みと非常に似ています
ルートがリダイレクトされた場合、新しいURLを使用して辞任する必要があると思いましたが、署名検証で間違いを犯したのはまさにそのためでした。 。
解決策は次のとおりです。
最初のロードされたページに署名するだけです。 UIルーターを使用したジャンプは、アドレスを変更したばかりのようです。 。このアドレスの変更。 。 WeChatの署名は認識されていないようです。 。彼は、ロードされた最初のページのURLを認識しました。
この記事を通して、私はそれがこの問題に遭遇した友人を助けることができることを願っています。このウェブサイトへのご支援ありがとうございます!