line.js 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. // Helper functions for accessing the line API.
  3. var Parse = require('parse/node').Parse;
  4. const httpsRequest = require('./httpsRequest');
  5. // Returns a promise that fulfills if this user id is valid.
  6. function validateAuthData(authData) {
  7. return request('profile', authData.access_token).then(response => {
  8. if (response && response.userId && response.userId === authData.id) {
  9. return;
  10. }
  11. throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Line auth is invalid for this user.');
  12. });
  13. }
  14. // Returns a promise that fulfills iff this app id is valid.
  15. function validateAppId() {
  16. return Promise.resolve();
  17. }
  18. // A promisey wrapper for api requests
  19. function request(path, access_token) {
  20. var options = {
  21. host: 'api.line.me',
  22. path: '/v2/' + path,
  23. method: 'GET',
  24. headers: {
  25. Authorization: 'Bearer ' + access_token
  26. }
  27. };
  28. return httpsRequest.get(options);
  29. }
  30. module.exports = {
  31. validateAppId: validateAppId,
  32. validateAuthData: validateAuthData
  33. };
  34. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJodHRwc1JlcXVlc3QiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJyZXF1ZXN0IiwiYWNjZXNzX3Rva2VuIiwidGhlbiIsInJlc3BvbnNlIiwidXNlcklkIiwiaWQiLCJFcnJvciIsIk9CSkVDVF9OT1RfRk9VTkQiLCJ2YWxpZGF0ZUFwcElkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwYXRoIiwib3B0aW9ucyIsImhvc3QiLCJtZXRob2QiLCJoZWFkZXJzIiwiQXV0aG9yaXphdGlvbiIsImdldCIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvQXV0aC9saW5lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyB0aGUgbGluZSBBUEkuXG52YXIgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5jb25zdCBodHRwc1JlcXVlc3QgPSByZXF1aXJlKCcuL2h0dHBzUmVxdWVzdCcpO1xuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmIHRoaXMgdXNlciBpZCBpcyB2YWxpZC5cbmZ1bmN0aW9uIHZhbGlkYXRlQXV0aERhdGEoYXV0aERhdGEpIHtcbiAgcmV0dXJuIHJlcXVlc3QoJ3Byb2ZpbGUnLCBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS51c2VySWQgJiYgcmVzcG9uc2UudXNlcklkID09PSBhdXRoRGF0YS5pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ0xpbmUgYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gIH0pO1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmZiB0aGlzIGFwcCBpZCBpcyB2YWxpZC5cbmZ1bmN0aW9uIHZhbGlkYXRlQXBwSWQoKSB7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxuLy8gQSBwcm9taXNleSB3cmFwcGVyIGZvciBhcGkgcmVxdWVzdHNcbmZ1bmN0aW9uIHJlcXVlc3QocGF0aCwgYWNjZXNzX3Rva2VuKSB7XG4gIHZhciBvcHRpb25zID0ge1xuICAgIGhvc3Q6ICdhcGkubGluZS5tZScsXG4gICAgcGF0aDogJy92Mi8nICsgcGF0aCxcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIGFjY2Vzc190b2tlbixcbiAgICB9LFxuICB9O1xuICByZXR1cm4gaHR0cHNSZXF1ZXN0LmdldChvcHRpb25zKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlQXBwSWQ6IHZhbGlkYXRlQXBwSWQsXG4gIHZhbGlkYXRlQXV0aERhdGE6IHZhbGlkYXRlQXV0aERhdGEsXG59O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0EsSUFBSUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUNELEtBQUs7QUFDdkMsTUFBTUUsWUFBWSxHQUFHRCxPQUFPLENBQUMsZ0JBQWdCLENBQUM7O0FBRTlDO0FBQ0EsU0FBU0UsZ0JBQWdCQSxDQUFDQyxRQUFRLEVBQUU7RUFDbEMsT0FBT0MsT0FBTyxDQUFDLFNBQVMsRUFBRUQsUUFBUSxDQUFDRSxZQUFZLENBQUMsQ0FBQ0MsSUFBSSxDQUFDQyxRQUFRLElBQUk7SUFDaEUsSUFBSUEsUUFBUSxJQUFJQSxRQUFRLENBQUNDLE1BQU0sSUFBSUQsUUFBUSxDQUFDQyxNQUFNLEtBQUtMLFFBQVEsQ0FBQ00sRUFBRSxFQUFFO01BQ2xFO0lBQ0Y7SUFDQSxNQUFNLElBQUlWLEtBQUssQ0FBQ1csS0FBSyxDQUFDWCxLQUFLLENBQUNXLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUscUNBQXFDLENBQUM7RUFDNUYsQ0FBQyxDQUFDO0FBQ0o7O0FBRUE7QUFDQSxTQUFTQyxhQUFhQSxDQUFBLEVBQUc7RUFDdkIsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztBQUMxQjs7QUFFQTtBQUNBLFNBQVNWLE9BQU9BLENBQUNXLElBQUksRUFBRVYsWUFBWSxFQUFFO0VBQ25DLElBQUlXLE9BQU8sR0FBRztJQUNaQyxJQUFJLEVBQUUsYUFBYTtJQUNuQkYsSUFBSSxFQUFFLE1BQU0sR0FBR0EsSUFBSTtJQUNuQkcsTUFBTSxFQUFFLEtBQUs7SUFDYkMsT0FBTyxFQUFFO01BQ1BDLGFBQWEsRUFBRSxTQUFTLEdBQUdmO0lBQzdCO0VBQ0YsQ0FBQztFQUNELE9BQU9KLFlBQVksQ0FBQ29CLEdBQUcsQ0FBQ0wsT0FBTyxDQUFDO0FBQ2xDO0FBRUFNLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHO0VBQ2ZYLGFBQWEsRUFBRUEsYUFBYTtFQUM1QlYsZ0JBQWdCLEVBQUVBO0FBQ3BCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=