解析使用 Auth0 认证的用户 [英] Parse user authenticated using Auth0

查看:40
本文介绍了解析使用 Auth0 认证的用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究如何同时使用 Parse.com 和 Auth0.

Hi I'm trying to figure out how to use Parse.com and Auth0 together.

当我使用 Parse.com 设置登录时,currentUser 会自动设置,我可以使用该用户来保存特定于该用户的项目.但是当我使用 Auth0 实现身份验证时,当您执行成功登录时,Auth0 会使用用户信息(Auth0 令牌、fb 访问令牌等)进行响应,当然没有创建 Parse 用户.那么需要采取哪些步骤才能使用Parse提供的'currentUser'对象,而使用Auth0提供的认证呢?那么如何在解析时创建/保存新用户?

When I setup login with Parse.com the currentUser is automatically set and I can use that user to save items specific for that user. But when I implement authentication using Auth0, Auth0 responds with the user info (Auth0 token, fb access token etc) when you perform a successful login, and of course no Parse user was created. So which steps need to be taken to make use of the 'currentUser' object provided by Parse, but use the authentication provided by Auth0? So how do I create/save the new user on parse?

推荐答案

你试过 这个解析规则?

function(user, context, callback) {
  // run this only for the Parse application
  // if (context.clientID !== 'PARSE CLIENT ID IN AUTH0') return callback(null, user, context);

  var PARSE_APP_ID = 'PLACE HERE YOUR PARSE APP ID';
  var PARSE_API_KEY = 'PLACE HERE YOUR PARSE REST API KEY';
  var PARSE_USER_PASSWORD = 'PARSE_USER_MASTER_KEY'; // you can use this to generate one http://www.random.org/strings/

  var username = user.email || user.name || user.user_id; // this is the Auth0 user prop that will be mapped to the username in the db

  request.get({
    url: 'https://api.parse.com/1/login',
    qs: {
      username: username,
      password: PARSE_USER_PASSWORD
    },
    headers: {
      'X-Parse-Application-Id': PARSE_APP_ID,
      'X-Parse-REST-API-Key': PARSE_API_KEY
    }
  },
  function (err, response, body) {
    if (err) return callback(err);

    // user was found, add sessionToken to user profile
    if (response.statusCode === 200) {
      user.parse_session_token = JSON.parse(body).sessionToken;
      return callback(null, user, context);
    }

    // Not found. Likely the user doesn't exist, we provision one
    if(response.statusCode === 404) {
      request.post({
        url: 'https://api.parse.com/1/users',
        json: {
          username: username,
          password: PARSE_USER_PASSWORD
        },
        headers: {
          'X-Parse-Application-Id': PARSE_APP_ID,
          'X-Parse-REST-API-Key': PARSE_API_KEY,
          'Content-Type': 'application/json'
        }
      },
      function (err, response, body) {
        if (err) return callback(err);

        // user created, add sessionToken to user profile
        if (response.statusCode === 201) {
          user.parse_session_token = body.sessionToken;
          return callback(null, user, context);
        }
        return callback(new Error('The user provisioning returned an unkonwn error. Body: ' + JSON.stringify(body)));
      });
    }
    else
    {
      return callback(new Error('The login returned an unkonwn error. Status: ' + response.statusCode + 'Body: ' + body));
    }
  });
}

这篇关于解析使用 Auth0 认证的用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆