问题标签 [firebase-authentication]
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.
angularfire - AngularFire $onAuth() 在从 GitHub 初始重定向后未触发,但在页面刷新时触发;与弹出窗口正常工作
在与 GitHub 之间成功进行重定向身份验证后,我在让 AngularFire 的 $onAuth() 触发时遇到问题。如果我使用auth.$authWithOAuthRedirect('github')
它将重定向到 GitHub 并在成功验证后再次返回,但是当它返回到我的 Angular 应用程序时,auth.$onAuth()
不会调用回调。如果我然后刷新页面,它会被预期的 authinfo 调用。如果我退出 ( $unauth()
) 并重新登录,则在$onAuth()
刷新页面之前不会再次调用回调。
起初我认为这是我做错的事情,但我注意到如果我更改代码以$authWithOAuthPopup()
改用,应用程序会按预期工作:$onAuth()
一旦弹出窗口关闭,就会调用回调,并传递 authdata。
请注意,如果我只是误解了如何使用它,请注意这是否是 AngularFire 中的一个错误。我已经搜索了示例,并且我认为我正确使用了它,但是如果问题出在我的代码中,请告诉我应该如何做。
我已经将一个最小的 repo 案例放入 GitHub repo:https ://github.com/drstearns/angularfire-oath-redir 。当前使用的代码$authWithOAuthRedirect
,你会注意到当你第一次认证时从GitHub返回时,控制台没有任何记录,退出并重新登录后也没有。如果你在登录后刷新页面,它工作正常. 如果您将其更改为使用$authWithOAuthPopup()
,它也可以正常工作。
以下是相关代码的片段:
angularjs - Firebase:使用 angularFire 进行身份验证后如何获取对象的 $id
Firebase 具有 $onAuth 方法,用于侦听客户端身份验证状态的更改。如果客户端通过身份验证,回调将传递一个包含 uid 的对象。这是我的问题:基于这个 uid,我怎样才能得到这个对象的 $id。
这就是我的数据在 firebase 中的样子:
我在用
我看到我可以对 authData 响应做的就是使用以下方法获取对象的 uid:
此 authData 不包含对象的 $id(即 -K2a7k9GXodDriEZrM3f)。这就是我正在寻找的,以便让用户的信息可用。有没有办法做到这一点?
谢谢。
firebase - Firebase email authentication with rules not working as expected
In the management screen I have both email auth and anonymous login enabled. The data has only one node - Hello: "World"
The rule that I have is
If the user is NOT logged in with the above rule then you get The read failed: Permission denied That's all good.
If a anonymous user is logged in then I can see the value "{Hello=World"} Works so far.
If i log in with a email user the I get an error :FirebaseError: Permission denied
The onAuthenticate does trigger and I get : User ID: 3c6ce912-a05a-49ed-ae68-8ec97d022303, Provider: password
The complete code is below. What am I doing wrong?
}
firebase - 角火的安全性
我试图摆脱将新条目发布到 angularfire 数组时出现的错误。该数组保存报告,该数组应该可以写入,但不能读取。我的规则如下:
我正在从一个函数中调用对该数组的写入,其内容如下:
无论我在规则中注释掉哪个写入规则(也取消注释另一个),写入是成功的,但是变量的创建会reportsArray
出现如下错误Error: permission_denied: Client doesn't have permission to access the desired data.
在这里最好做什么,忽略错误还是我做错了什么?
firebase - 使用 Firebase Google 用户身份验证更改用户
使用 Firebase Google 用户身份验证时,如果用户已经授权应用程序并且仅登录到一个 Google 帐户,则用户会立即登录。
有没有办法强制出现“选择帐户”对话框,以便用户有机会登录到不同的 Google 帐户或创建一个新帐户?
据我所知,货币用户必须从 Google.com 手动注销当前的 Google 帐户(或登录到 > 1)才能显示对话框。
firebase - 在 firebase 中删除用户不会触发 onAuth 方法
当通过Login & Auth firebase web 界面的Registered Users部分删除用户时,不会触发 onAuth 方法并且用户保持登录状态并能够写入数据库。如何确保用户的会话被销毁然后用户被删除?
oauth - 使用 OAuth 令牌在 Polymer 中验证 Firebase
我有一个使用 Google 帐户进行身份验证的 Firebase 数据库。目前,我有一个<google-signin-aware>
元素详细说明了应用程序的登录详细信息,以便与 Google 登录 API 一起使用,并在登录时使用 Google 登录返回的访问令牌对 Firebase 引用进行身份验证。
<google-signin-aware>
从成功登录元素的回调中:
为了尝试与 Polymer 进一步集成,我正在迁移到<firebase-auth>
作为“Firebase 身份验证 API 的包装器”的元素。但是,我找不到使用访问令牌进行身份验证的等效方法。该login()
方法有两个参数,有没有办法将访问令牌提供给登录方法,以便 Firebase 使用这个令牌而不是它自己的弹出窗口进行身份验证?
firebase - firebase 登录时的电子邮件,其他人可以在未经我同意的情况下注册我的电子邮件吗?
我需要为firebase密码身份验证实现一个确认功能,并想知道是否有人对实现有一个好主意。(否则我可以编写一个网络应用程序来管理它。)
如果没有好的解决方案,我可能会决定放弃基于密码的身份验证,因为如果没有对用户身份进行某种确认,我认为它没有意义。
另一方面,更重要的注意事项:
当前的问题是 Firebase 不允许控制谁可以写入当前提供的密码身份验证解决方案。再加上没有电子邮件确认功能的事实,其他人可以注册我的电子邮件。这是firebase打算让登录工作的方式吗?
注册后,有人可以登录,并使用我的电子邮件作为“个人资料”,同时使用应用程序的功能。这可以在没有确认此人实际上是所提供电子邮件的帐户持有人的情况下完成。
如果有人使用我的电子邮件进行恐怖威胁或其他不太理想的非法活动怎么办?
firebase - 创建用户时 Firebase 安全规则不允许
我使用 Firebase$authWithPassword
方法进行用户登录。我使用该$createUser
方法为我的用户创建注册,并在成功后更新我的 /users/ 路径上的条目以保存用户名、uid 和其他一些详细信息。这是代码
这是我的安全规则
现在,如果我尝试注册它会给我权限被拒绝错误,我确定这是因为安全规则".read": "auth != null"
和".write": "auth != null"
. 如果我将规则更改为".read": true
and ".write": true
,注册将起作用,但任何人都可以看到我的用户数据,包括我不希望发生的 uid 和电子邮件 id。如何更改我的规则以适应我的需要?
google-app-engine - 来自 Google Cloud Endpoint 的 Firebase 身份验证
我有一个使用 Firebase 和用户身份验证的 Android 应用。身份验证过程通过 Facebook、Google 或 Twitter 帐户完成,并将用户数据存储到 Firebase。
另一方面,我有一个在 App Engine 中运行的 Java 版 Google Cloud Endpoint,它连接到 Firebase 以检索一些数据,并最终通过 Google Cloud Messaging 向其他用户发送消息。Firebase 存储用户 GCM 令牌,如果某些 GCM 令牌无效或已更新,端点连接到 Firebase 以将这些 GCM 令牌更新到用户节点。
现在,我的用户节点安全规则如下:
目前,不允许 Google Cloud Endpoint 更新用户 GCM 令牌,我正在考虑在 Endpoint 中实现一个身份验证过程,该过程会生成一个自定义令牌,只是为了允许端点写入用户节点。
这是要走的路吗?还是我完全错了?