我想只允许注册在我的反应应用程序的用户与电子邮件有一定的结尾。例如,只有在最后使用@tm.com的用户。如果不手动创建一个必须不断更新的“白名单”,这是可能的吗?我的应用程序已连接到firebase。
import firebase from '../configureFirebase'
import * as types from '../constants/ActionTypes'
import {actionStart, actionFailed, actionSuccess} from './utils/template'
export const register = (email, password) => {
return function(dispatch) {
dispatch(actionStart(types.REGISTER))
const promise = firebase.auth().createUserWithEmailAndPassword(email, password)
promise.then((user) => {
dispatch(actionSuccess(types.REGISTER, {user: user}))
})
.catch(function(error) {
let errorMessage
switch (error.code) {
case 'auth/weak-password':
errorMessage = 'Passwort zu schwach'
break
default:
errorMessage = error.message
}
dispatch(actionFailed(types.REGISTER, errorMessage))
})
//return promise so github.com/arnaudbenard/redux-mock-store works
return promise
}
}发布于 2019-03-25 18:01:19
您应该考虑在Firebase中执行此操作,而不是应用程序的前端部分。在firebase中有这样的规则,允许你限制对特定用户的访问。以下是包含@tm.com域的规则的一个小示例。
{
"rules": {
".read": "auth != null",
"restrictedUsers": {
"$uid": {
".write": "auth.token.email_verified == true && auth.token.email.matches(/.*@tm.com$/)"
}
}
}
}它们在auth.token部分Firebase中提供了一个示例
这样,您就可以避免在应用程序的前面部分出现列表。以下是一些好处:
users
https://stackoverflow.com/questions/55334767
复制相似问题