問題タブ [firebasesimplelogin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
firebase - CreateUser 関数が AngularFire で機能しない - Firebase Simple Login?
AngularFire を使用する次のコントローラーがあります。
$scope.createAccount
関数をイベントにバインドng-click
し、バインドされたボタンをクリックするとconsole.log("found me")
、ブラウザーで実行されますが、他のconsole.log
コマンド$scope.createAccount
は表示されません。
関数を設定する前に使用したconsole.log($scope.auth)
コマンドは、関数が定義され$scope.createAccount
た有効なオブジェクトを示しています。$createUser
実行時にコンソール エラーが表示されない$scope.createAccount
ため、呼び出しが「正常に」行われたと想定しています。
認証オブジェクトを表示できるのに、呼び出し後にコールバックを受信できないのはなぜ$createUser
ですか?
javascript - AngularFire の簡単なログイン
ユーザーストアを備えた FireBase db があります。また、簡単なログイン メール/pw も使用します。ユーザー ストアでは、ユーザーの追加情報をいくつか保存します。たとえば、最終ログイン日です。これは私のワークフローです - 登録からログインまで:
ユーザーを登録します。登録すると、簡単なログインメール/パスワードに追加されます; また、登録済みユーザー (simplelogin から返された ID を含む) をユーザー ストアに追加します。Firebase で生成された一意のキーの下に保存されます。
その新しいユーザーとしてログインします 成功すると、simplelogin ストアからユーザー オブジェクトを取得します。
ここで、ユーザー ストア内の対応するユーザーを更新します。たとえば、lastlogin キーを今に設定します。ただし、Firebase が生成したキーが下にあることがわかっている場合にのみ、そのユーザーを更新できます。どうすればそのキーにアクセスできますか?
ユーザー ストア内のユーザーを識別する他の唯一の方法は、ユーザー ストア内のすべてのユーザーを取得し、それらすべてをループして、現在の ID キー値がログイン ユーザーの ID キー値と一致するかどうかを確認することです。私には少し不器用に見えますが、これがfirebaseでルックアップを行う唯一の方法だと思いますか?
angularjs - Firebase認証はfirebaseAuthTokenを公開していますが、安全ですか?
Firebase アプリケーションに Google ログインを提供しようとしています。https://www.firebase.com/docs/security/simple-login-overview.htmlに従ってください
ログインに成功すると、ユーザーを取得できるように見えるため、たとえば Angular スコープ ($scope.loggedInUser など) に格納できます。(実装によっては、Angular である必要はありません)
私の質問は、多くの認証トークンを使用して Firebase から返されたユーザーが公開される可能性があることはセキュリティ リスクですか? コードは Javascript で書かれているため、ハッカーは何らかのコードをブラウザーに埋め込むことで、ユーザーをハイジャックして盗むことができるはずです。
私の懸念を引き起こすビットは次のとおりです。accessToken、firebaseAuthToken
それがリスクである場合、どうすればそれを確保できますか?
認証とユーザー データについては、以下のコードを参照してください。
認証用のコードは次のとおりです。
LoggedInUser に含まれるもの (これはサンプル データです):
javascript - クライアントがユーザーを作成できるようにするが、認証されるまで変更しない
学ぶために、roder で backbone.js を使用してアプリを書いています。私が実際に得たものはこちらにあります: https://the-todo-app.firebaseapp.com/
私の考えは、人々がfacebookでsimpleLoginを使用してアプリに登録してユーザーを作成できるようにすることです。その後、ユーザーにリダイレクトされ、todosを作成および変更できますが、実際にはすべてのユーザーが書き込む可能性があるという問題がありますつまり、他のユーザーのデータを入力したり、削除または変更したりできます。Firebase のセキュリティを制限して、ID に基づいてユーザーを作成できるようにしたいのですが、認証されていない場合は書き込みを許可しません。これは私が実際に持っているものです:
麻生はこれを試しました:
ただし、このアプローチでは、クライアントがユーザー ID を作成することはできません。
これは私のデータが実際にどのように見えるかです:
皆さんがこれを行う方法についての考えを持っているなら、私は感謝します。
ArneHugo の回答に基づいて、このルールを設定したところ、かなりうまく機能しているようです。確認するには、さらにテストを行う必要があります。
実際には、ユーザーがデータが存在するかどうかを確認できるようにするために、ユーザーに .read ルールを true に追加する必要がありました。これが現在のルールの外観です。
そして、これは出力が匿名ユーザーをどのように探すかです
そして、これが認証されたユーザーを探す方法です。
これは、別のユーザー データを書き込もうとしている匿名ユーザーの uoutput です。
さて、この例を作成すると、データベースに存在する ID を持つ認証されたユーザーが、このように別のユーザー データを書き込むことができることがわかりました。
angularjs - エラー: FirebaseSimpleLogin.login() が失敗しました: 認証プロバイダーを認識できません
さて、かなり奇妙なエラーが発生しています。facebook
、twitter
およびgoogle
firebaseバックエンドを備えたangularjsを使用して、アプリでソーシャルログインを設定しています。facebook
とログインの両方twitter
が機能しますが、Googleでは機能しません。[Google でログイン] ボタンをクリックすると、コンソールにこのエラーがスローされます
Error: FirebaseSimpleLogin.login() failed: unrecognized authentication provider
これはかなり奇妙で、どこに問題があるのか わかりません
私はこれを私の見解で持っています
サインイン コントローラーで
そして、私のloginServiceにはこれがあります
Twitter と Facebook の認証は正常に機能しますが、Google では機能しません。私は何が欠けていますか?
ありがとう
javascript - Firebase は複数回ログイン ユーザーです
これは、ログインボタンを押すたびに発生します。
最初のログイン: コールバックに 2 つのログインが表示される
最初のログアウト
2 回目のログイン: コールバックに 4 つのログインが表示される
2回目のログアウト
3 回目のログイン: コールバックで 5 回のログインが連続して表示されるようになりました
等
これは私のログイン機能です:
私の質問は簡単です。なぜこうなった?ログアウトを押しても、ログインが自動的に呼び出されることがあります。
node.js - Firebases の thirdpartyuserdata オブジェクトをサーバーに投稿する
Firebase と SimpleLogin を使用して、ユーザーが Google や Twitter などからログインできるようにしています。
thirdpartyuserdata
オブジェクトの一部を使用して、Node.js 上で実行されるアプリケーションのユーザー プロファイルを作成したいと考えています。
現在、このデータをサーバーに投稿して、追加してプロファイルオブジェクトを作成できるようにしていますが、これを行うためのより良い方法があるかどうか疑問に思いました-thirdpartyuserdata
投稿せずにこれを取得するためにサーバー側に呼び出すことができるものはありますかクライアントからですか?
javascript - AngularFire - コントローラーでユーザー データが取得されるまで待機する
ユーザーは、ユーザー名、電子メール、およびパスワードで登録します。メールで FirebaseSimpleLogin を使用して認証し、ユーザー ID を取得してから、ユーザー ID を使用してユーザーを読み込みます。
さて、私の問題は、HomeCtrl にログインしている場合にユーザー プロファイル ページにリダイレクトしたいということです。
残念ながら、リダイレクトする前に setCurrentUser 関数が完了するまで待つ方法がわかりません。この他の関数が完了するまでコントローラーの関数を待機させる方法はありますか?
回避策はありますが、これは正しい方法ではないと確信しています。現在、ユーザー変数が更新されるのを監視し、次のように、ユーザーに変更された後にすべての関数を呼び出しています。