![在解析服务器中禁用默认用户身份验证](https://linux22.com/image/720208/%E5%9C%A8%E8%A7%A3%E6%9E%90%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%AD%E7%A6%81%E7%94%A8%E9%BB%98%E8%AE%A4%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我们如何防止用户使用用户名和密码注册?
我们希望我们的用户只使用帐户套件登录,而不希望有人尝试使用电子邮件地址或其他登录方法注册。
我们没有提供此作为我们的身份验证,但有人可以创建自定义登录代码并尝试操纵我们的解析服务器以绕过身份验证方法。
oauth: {
accountkit: {
appIds: '',
appSecret: ''
},
**email: false**
},
是否有任何选项可以禁用旧式注册方法?(电子邮件:false)?
答案1
在我的应用程序中,使用 Facebook 和 Twitter Oauth 进行登录/注册用户。如果用户提供 authData,我会在保存触发器之前进行控制。
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
const user = request.object;
if (user.get("authData")) {
response.success(request.object);
} else {
response.error("Only oauth allow");
}
});
我不知道这是否是一个好方法,但它会用用户名/密码锁定注册。
编辑:第一个解决方案并不好,因为每次用户更新时它都会引发错误,我发现了一个更好的解决方案:
if (request.user || request.master) {
response.success(request.object);
} else {
const user = request.object;
if (user.get("authData")) {
response.success(request.object);
} else {
response.error("Only OAuth login allowed");
}
}
在这种情况下,仅当请求不是由已登录用户执行或使用 masterKey 执行时,我们才进行控制(例如解析仪表板)