我只想允许具有特定结尾的电子邮件用户在我的应用程序中注册。例如,仅以@ 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
}
}
答案 0 :(得分:0)
您应该考虑将其添加到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
中提供了一个示例然后,您将避免在应用程序的顶部列出列表。 这里有一些好处: