Articles of firebase authentication

pipe理员firebase身份validation和节点js

我正在开发android应用程序,我使用节点js后端和Firebase平台为我的应用程序,我用firebase-authpipe理用户,问题是当我注册一个新的用户使用节点js的firebase-auth我看到这个错误。 这是源代码。 function registerUser(socket,io){ ​// retrieve data from android app socket.on('userData',(data)=>{ console.log(data.email); console.log(data.userName); console.log(data.password); ​ ​// register new user using data. admin.auth().createUser({ email: data.email, password: data.password, displayName: data.userName, }) .then(function(userRecord) { // See the UserRecord reference doc for the contents of userRecord. console.log("Successfully created new user:", userRecord.uid); const db = admin.database(); const ref = db.ref('users/'); […]

强制令牌刷新,但令牌仍然过期?

var app = angular.module('app', ['firebase']); const setAppCookie = () => firebase.auth().currentUser.getToken(true).then(token => { Cookies.set('token', token, { domain: window.location.hostname, expire: 1 / 24, path: '/', secure: true }); }); const unsetAppCookie = () => Cookies.remove('token', { domain: window.location.hostname, path: '/', }); app.factory("Auth", ["$firebaseAuth", function ($firebaseAuth) { return $firebaseAuth(); }]); app.controller("ctrlHead", ["$scope", "Auth", "$window", function ($scope, Auth, […]

通过电子邮件创build的Firebase-Admin用户显示为匿名

我用一个最小的(名字/电子邮件/密码)表单使用admin sdk。 用提供的电子邮件创build的用户仍然在控制台中匿名显示。 我的代码:(NodeJs) const admin = require('firebase-admin'); const secret = require('./../credentials/server'); admin.initializeApp({ credential: admin.credential.cert(secret), databaseURL: 'url', }); module.exports = (user) => { admin.auth().createUser({ email: user.email, password: user.password, displayName: user.name, }) .then((userRecord) => { // See the UserRecord reference doc for the contents of userRecord. console.log('Successfully created new user:', userRecord.uid); }) .catch((error) => { console.log('Error […]

Firebase:如何以编程方式为类似于`firebase.auth()。currentUser.getIdToken(false)`的特定用户生成一个jwt标记?

我有一个http云端函数,希望在授权标头中传递一个jwt令牌(类似于Will在这个问题中的回答: 如何保护firebase云端functionHTTP端点只允许Firebaseauthentication的用户? )。 这个云function通过函数admin.auth().verifyIdToken(<token>)validation令牌。 在我的客户端代码中,我使用代码firebase.auth().currentUser.getIdToken(false)生成一个包含在上述头部的http请求中的令牌。 我想能够以编程方式给用户的uid生成这个令牌,最好是在Node中,这样我就可以为我的函数编写testing,而无需通过我的web应用程序来获取令牌。 我尝试使用admin.auth().createCustomToken(<uid>)但是不创build可以用admin.auth().verifyIdTokenvalidation的标记。 我也尝试按照本指南https://firebase.google.com/docs/database/rest/auth中的步骤操作,但生成的令牌不是verifyIDToken接受的令牌,尽pipe我可以使用REST调用数据库它(如指南中所述)。

Admin SDK Auth错误,错误的错误代码

我正在使用Admin SDK,Authfunction。 当调用admin.auth().verifyIdToken(token)并且令牌已经过期时,我得到错误 Firebase ID令牌已过期。 从您的客户端应用程序获取新的令牌,然后重试。 有关如何检索ID令牌的详细信息,请参阅https://firebase.google.com/docs/auth/admin/verify-id-tokens 。 有错误代码 AUTH /参数误差 首先,错误代码是不是“auth / user-token-expired”? 其次,我收到的错误代码不在pipe理员身份validationAPI错误中 我很难妥善处理所有的firebase错误,所以我可以回复适当的错误消息给我的API的消费者。

Firebase在用户login时创build条目

我正在尝试设置Firebase的login过程。 我将使用客户端用户创build(因为显然firebase只允许客户端用户创build),这里是我的工作stream程的样子: 用户通过电子邮件和密码注册 服务在/ users / $ uid以及其他几个(例如/ table1 / $ uid,/ table2 / $ uid)创build一个入口。 用户可以在path/ users / $ uid,/ table1 / $ uid等处写入数据库,其中$ uid =当前login的用户(这是通过规则完成的) 但是,对于号码2,我想创buildentry / users / $ uid,但我不希望用户有权访问。 有没有办法做到这一点? 我想到的一个select是在节点服务器上运行一个具有所有r / w权限的服务帐户来创build这些表,但是如果我正在执行所有auth客户端,那么如何调用该服务器方法呢?

Firebase Node.JS Admin SDK发送validation邮件

我正在使用sdk为用户创build一个用户和一个数据库条目,这一切都是完美的。 创build数据库条目后,我调用sendEmailVerification()函数,但我猜这是一个客户端函数,因为它被调用时返回null。 什么是从pipe理员sdk直接发送validation电子邮件的过程(如果可能的话)。 目前我所做的是将一些JSON发送回客户端,说明validation邮件是否成功发送。 但是调用这个函数是行不通的,所以没有那么多。 这是我在节点内的function。 function verifiyEmail(email, res) { var user = admin.auth().currentUser; user.sendEmailVerification().then(function() { // Email sent. var jsonResponse = { status: 'success', alertText: '1', email: email } res.send(jsonResponse); }, function(error) { // An error happened. var jsonResponse = { status: 'success', alertText: '0', email: email } res.send(jsonResponse); }); } UPDATE 我猜这是不可能的,所以我在节点中生成一个自定义令牌,并将其发送回客户端。 然后我使用我回来的令牌尝试通过调用下面的方式来签署用户,但是signInWithCustomToken()函数不会被调用。 […]

Firebase set()承诺停留在挂起状态

我正在尝试简单地写入Firebase数据库,如下所示: return app.register( email, password ).then( f => { return app.login( email, password ) } ).then( f => { return app.currentUser() } ).then( user => { return app.firebase.db().ref( `users/${user.uid}` ).set( {color: 'red'} ) } ).then( f => { console.log( "This never triggers" ) } ) 其中app.register是: ( firebase, email, password ) => firebase.auth().createUserWithEmailAndPassword( email, password […]

如何检查服务器上的客户端进行身份validation?

情况: 目前,我通过URL传递UID到服务器。 然后我使用UID检查数据库中是否存在该UID: 码: router.get("/profile/:uid", function(req, res, next){ var uid = req.params.uid; var userRef = admin.database().ref("users/"+uid); userRef.once('value', function(snapshot){ if (snapshot != null) { 问题: 这意味着任何人都可以访问任何人的个人资料通过构build一个url并将其粘贴到search栏中,并包括该用户的UID。 题: 如何检查用户是否在服务器上进行了身份validation,而没有出现这种安全漏洞?

如何在NodeJS中创build一个新的Firebase Admin SDK服务器以与LinkedIn进行身份validation?

我从来没有使用NodeJS,我需要创build一个Firebase自定义令牌,所以我可以通过LinkedIn向我的iOS应用程序进行身份validation。 根据Firebase文档,我必须创build一个新的Firebase Admin SDK服务器。 我遵循NodeJS的指示,但是没有很好的解释。 我不明白如何与我的应用程序通信到服务器,我找不到有关它的文档。 有人做过这个吗? 如果是这样,我会感谢您的帮助。 谢谢。