前に書いた記事: いろいろありすぎて長い間ブログを更新していませんでしたが、最近貴重なことをいくつかやったので、後ほどシェアさせていただきます
筆者はTencentで主にオープンプラットフォームOpenAPIを担当していますが、仕事の関係でここ数日、Baidu、Renren、Sina、Taobaoの4つのプラットフォームを訪問し、サイト内アプリケーションの統合方法を研究してきました。 Web サイトのログイン、モバイル アプリケーション、Baidu サイト アプリケーションのデモを開発しました。
Baidu サイト アプリケーションのデモ:
体験アドレス (体験したい場合は、ホワイトリストを有効にするために最初にご連絡ください):
http://app.baidu.com/app/enter?appid=385894&debug=1&is_from_dev=1&canvas_pos=platform
コードは github でオープンソース化されています: https://github.com/dantezhu/baidu_app_demo。baidu SDK がカプセル化されており、必要な友人はそれを直接使用できます。
開発言語はPython+flask
モバイル アプリケーションと Web サイトへのアクセス、これらのアクセス方法はどちらも oauth であり、これはすべてのプラットフォームで基本的に同じです。
オンサイトのアプリケーションについては、Tencent の現状とは異なるため、ここでは Baidu を例として処理に焦点を当てます。
Baidu のチュートリアルはこちらです: Baidu サイト アプリケーション開発ドキュメント
1. ユーザーがアプリケーション リストをクリックして入力すると、Baidu は bd_user、bd_sig の 2 つのパラメータをアプリケーションに渡します。これらは Tencent Open Platform の openid と openkey に非常によく似ていますが、実際には Baidu はこれら 2 つのパラメータをそれほど強力にすることはできません。ログイン状態の保証は、これら 2 つのパラメータが人間によって改ざんされていないことを保証するためにのみ使用できます。
2. 2 つのパラメータの検証に合格するかどうかは、アプリケーション セッションの userid と bd_user が同じかどうかによって異なります。実際、これは Baidu が推奨するアプリケーション開発方法であり、ユーザーがアプリケーションに入るたびに oauth ログイン システムを呼び出すことを避けるために、最初のログイン成功後にアプリケーションがそれを独自のセッションに書き込むことをお勧めします。 Tencent プラットフォームに対応して、Wiki では実際にこれをユーザーに強制したり推奨したりしません。主な理由は、アプリケーションが独自のセッションを作成しなくても、毎回 Tencent のインターフェイスを呼び出して openid と openkey を確認するためです。これはユーザーにとっては良いことではありませんが、Baidu の場合は、以前に認証されていたとしても、Baidu のログイン認証インターフェイスが呼び出されるたびにダイアログ ボックスが表示されます (最後のスクリーンショットで確認できます)。記事の)
3. ステップ 2 が同じ場合は、ユーザーがページを更新したばかりである可能性があるため、アプリケーションのホームページに直接アクセスします。それらが同じでない場合は、標準の oauth2.0 ログインが開始されます。ただし、Baidu はサーバー側の方法のみを使用することを推奨しているため、エンコードは少し複雑ですが、セキュリティも高くなります。
4. ユーザーのログイン認証に問題がない場合、アプリケーションはジャンプ先のセッションを redirect_url に書き込み、ホームページにジャンプします。プロセス全体が終了しました。
以下は、私が作成した Baidu サイト アプリケーションのデモのスクリーンショットです:
最後に、Baidu はアプリケーション上で多くの監視を行っています。たとえば、監視スクリプトをページに配置する必要があります。これは学ぶ価値があります。