【发布时间】:2018-02-13 18:00:34
【问题描述】:
我想根据用户的角色对用户进行身份验证。例如,我有 3 种类型的角色:普通用户、高级用户和管理员。每种类型的用户在登录时都会被重定向到特定页面。
我只设法根据官方文档对一种类型的用户进行了简单的身份验证。 我想知道如何注册具有不同角色的用户,然后将他们分别登录到特定页面。
【问题讨论】:
标签: javascript firebase web-applications firebase-authentication
我想根据用户的角色对用户进行身份验证。例如,我有 3 种类型的角色:普通用户、高级用户和管理员。每种类型的用户在登录时都会被重定向到特定页面。
我只设法根据官方文档对一种类型的用户进行了简单的身份验证。 我想知道如何注册具有不同角色的用户,然后将他们分别登录到特定页面。
【问题讨论】:
标签: javascript firebase web-applications firebase-authentication
根据预先存在的“管理员”和“高级”用户列表来控制每个用户看到的体验的最简单方法可能是使用自定义声明。
如果您只是使用标准 Firebase 登录,则可以使用 Admin SDK。
如果您想在用户注册时对其进行验证,您需要使用custom login system 来控制注册。您还可以从那里设置自定义声明。
用户登录后,您可以将他们重定向到正确的页面。
firebase.auth().signInWithEmailAndPassword(email, password)
.catch(function(error) {
// Handle Errors here.
}).then(function(){
firebase.auth().currentUser.getIdToken()
.then((idToken) => {
// Parse the ID token.
const payload = JSON.parse(b64DecodeUnicode(idToken.split('.')[1]));
// Confirm the user is an Admin.
if (!!payload['admin']) {
redirectAdminUI();
}
})
.catch((error) => {
console.log(error);
});
【讨论】: