まさにタイトル通り。ビルトインのログイン ダイアログ (見栄えが悪い) に頼ることなく、ネイティブの iPhone アプリで Facebook Connect (またはその他の FB 統合手段) を使用することは可能ですか? Facebookのログインユーザー名とパスワードを要求する独自のカスタムログイン画面を作成し、fbconnectネイティブメソッドを使用してその情報を検証し、有効なセッションを取得できるものはありますか?
4 に答える
やらないでください。これはポリシーに違反しており、アプリケーションはシャットダウンされます。quixoto が提案したように、これは、ユーザーにランダムな場所にパスワードを入力するように訓練したくないためであり、ユーザーが UX 要件に従ってアクションを確認していないためです。現在、これらのダイアログをより見やすくするための再設計に取り組んでいます。
はいといいえ。
Facebook は委任認証を使用して、アプリケーションを Facebook に接続します。したがって、ユーザーは自分のパスワードを「信頼できる」もの (Facebook ログイン ページなど) に入れることを意図しているため、アプリは実際にはパスワードを認識せず、結果としてキーのみを取得します。このようにして、ユーザーは他の Web ページやアプリのパスワードを信頼しないように訓練されるという考えです。
したがって、FB は FBConnect ライブラリでこの Web ポップアップを提供しますが、ユーザーの資格情報をセッションに変換する明示的な方法は他にありません。
とはいえ、正当な質問なので、技術的な質問にお答えします。オフスクリーン UIWebView を作成し、FB ログイン URL がその Web ビューにあるものをホストし、stringByEvaluatingJavaScriptFromString:. その Javascript は、ユーザー名/パスワードを取得し、フォームに入力して送信できますが、ユーザーには表示されません。FBConnect ライブラリ コードを読んで、使用する URL と、ページを送信した結果をどう処理するかを理解してください。それをライブラリに戻すことができます。
これを行うことは (1) 脆弱です。なぜなら、そのようなテクニックを打ち負かすために変更できる/変更される ID やものに頼らなければならないからです。これは、ユーザーがサード パーティのパスワードを信頼してはならないということを強化するものではないため、一般的な Web での認証の健全性のためです。
言うまでもなく、単独でユーザーに見栄えの良い認証エクスペリエンスを提供する場合は、資格情報を Facebook に提供する以外に、資格情報を保存したり、何かをしたりしないでください。
私が Facebook Connect を調べたところ、彼らは API と作成したい mod に対してかなり厳しいように見えました。facebook.com/x でインターフェースのカスタマイズについて言及されたことは一度もないので、彼らが承認したものに固執する必要があると思う.
ログインダイアログが実際に少なくとも基本的なフォーム検証を実行した場合、これは素晴らしいことです。メールアドレスやパスワードを入力しなくてもフォームを送信できます。粗雑、粗雑、UI作業。