要么我没有正确搜索,要么没有足够的资源来完成这项工作。
我有 ReactJS 作为前端,firebase 和 nodejs 作为后端。 Firebase 只会负责注册和登录。我有两种类型的用户:
是否可以使用基本的 CRA(create-react-app)项目来实现 RBAC?
还是我必须将凭据发送到我的 nodejs 后端并在那里处理 RBAC?
在我当前的 AuthContext
中:
const AuthContext = React.createContext()
export function useAuth() {
return useContext(AuthContext)
}
export function AuthProvider({ children }) {
const [currentUser, setCurrentUser] = useState()
const [loading, setLoading] = useState(true)
function signup(email, password) {
return auth.createUserWithEmailAndPassword(email, password)
}
function login(email, password) {
return auth.signInWithEmailAndPassword(email, password)
}
function logout() {
return auth.signOut()
}
function resetPassword(email) {
return auth.sendPasswordResetEmail(email)
}
function updateEmail(email) {
return currentUser.updateEmail(email)
}
function updatePassword(password) {
return currentUser.updatePassword(password)
}
useEffect(() => {
const unsubscribe = auth.onAuthStateChanged(user => {
setCurrentUser(user)
setLoading(false)
})
return unsubscribe
}, [])
const value = {
currentUser,
login,
signup,
logout,
resetPassword,
updateEmail,
updatePassword
}
return (
<AuthContext.Provider value={value}>
{!loading && children}
</AuthContext.Provider>
)
}
Role.js
:
export const Role = {
Admin: 'Admin',
User: 'User',
}
现在,如果我不能实现 RBAC,我将需要为每个用户类型创建两个集合,我认为这只会增加复杂性。
注意:我将使用自定义 API 来处理所有其他工作,因此 firebase 目前只会处理身份验证