与parse-server和auth0的定制authentication集成

我想将auth0.com与开源parsing服务器结合使用。

我目前的做法是通过使用他们的标准login通过锁库的iOS来从auth0获取令牌。 有了这个令牌,我想在我的分析服务器上调用一个自定义的身份validation方法,该方法检查该令牌是否有效,是否会login到用户。

我的问题是,几乎没有关于为parse-server编写自定义oauth的文档。

到目前为止,我有我的自定义身份validation的代码。

var Parse = require('parse/node').Parse; function validateAuthData(authData, options) { console.log('validateAuthData()'); return new Promise((resolve, reject) => { try { var decoded = jwt.verify(authData.access_token, opions.sharedSecret); if (authData.id === decoded.sub) { resolve({}); } throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Unauthorized'); } catch(e) { throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, e.message); } }); } function validateAppId(appIds, authData) { console.log('validateAppId()'); return Promise.resolve(); } module.exports = { validateAppId: validateAppId, validateAuthData: validateAuthData }; 

但是,它不起作用,我也不明白这个代码如何被用来authentication一个特定的用户。 分析服务器是否执行数据库查找以将特定的authentication数据与特定的用户相匹配? 另外,我怎样才能注册一个新的用户自定义身份validation。 当用户尝试login时,会发生什么情况,但他在我的分析数据库中还不存在?

一个替代scheme似乎是这样的 ,使用一个规则auth0.com。 有什么区别,规则如何工作? 我对身份validation和oauth以及jwt的经验很less。

最后,我正在使用这个从我的iOS客户端调用我的自定义身份validation。 然而,这也不起作用,但我不确定是否是由于iOS部分或由于我的自定义身份validation尚未工作。

总之,我遇到了一些似乎相当简单的麻烦。 我想使用auth0作为我的身份validation提供程序,我想集成它是分析服务器,因为我真的很感谢parsing和客户端sdk的方便。 我相当肯定有更多的人有类似的问题,但是我没有find任何关于如何正确地做到这一点的确切资源。

更多链接

  • parsing使用Auth0进行身份validation的用户
  • https://auth0.com/blog/2016/03/07/hapijs-authentication-secure-your-api-with-json-web-tokens/
  • https://github.com/ParsePlatform/parse-server/wiki/OAuth
  • https://jwt.io/introduction/