2014-09-01 5 views
4

Я пытаюсь обернуть свой мозг вокруг создания REST API на основе express.js/node.js. У меня есть несколько вопросов ...Нужен ли мне Oauth2 для моего API веб-приложений

  1. Нужно ли мне маркер на основе/OAuth 1 или 2 безопасности для моего API, если я сейчас только о веб-приложения (не обязательно телефонные приложения)

  2. Есть ли какие-либо ресурсы, чтобы научиться строить это с нуля? Я буквально прочитал первые 3 страницы googling «rest api с аутентификацией oauth2 express.js», и я все еще не понимаю.

+1

Oauth о подписании запросов сторонних клиентов, вам не понадобится, если вы не хотите создавать публичный API.По узлу есть экспресс-ресурс или регенерация, которые являются хорошими отправными точками. – inf3rno

ответ

4

Хорошо, что вы хотите использовать API REST в узле. Он действительно хорош в создании запроса на основе API.

Для вашего вопроса:

1) Если вы строите только базовый API, с помощью простых GET и POST запросов, то вы можете спросить себя, если данные, которые вы показываете или манипулирование требует «безопасности» , Если нет, то, скорее всего, вам не нужно реализовывать OAuth.

Но если ваши данные чувствительны, например, данные личного пользователя, тогда вам нужно добавить какой-то уровень безопасности в ваш API. Кроме того, использование безопасности OAuth или других токенов может помочь вам улучшить проверку доступа к вашей базе пользователей.

2) Сначала вам нужно понять концепцию OAuth. Как только у вас появится представление о том, как работает OAuth, его действительно легко реализовать на выбранном вами языке. Вот некоторые хорошо читает о том, как вы можете понять OAuth лучше

http://www.slideshare.net/MindfireSolutions/oauth-and-rest?qid=09a7d224-78bb-4b47-8957-3f0a0ce809a4&v=qf1&b=&from_search=3

Для получения более подробной информации о OAuth: http://tools.ietf.org/html/rfc6749

Опять же, как вы понимаете, рабочий процесс OAuth, вы можете реализовать его легко. : P

+2

Я создаю приложение SAAS, и я думаю, что я собираюсь пойти с основным почтовым/md5-зашифрованным паролем, как если бы я строил его на PHP. Я читаю ооут, и это просто не похоже, что мне это нужно. Я не планирую, что это сторонний api, поэтому просто для пользователей, чтобы зайти на мой сайт и войти в систему, я думаю, что достаточно простого решения для входа в систему, такого как имя пользователя/пароль, проверенное на базе базы данных. Согласны или не согласны? –

+1

Кажется разумным. Вы всегда можете добавить OAuth позже, если вы считаете, что вам это нужно. – shieldstroy

+1

Если это так, то я думаю, что вам не нужен OAuth :) – Ninz

0
  1. Это не зависит от того, используете ли вы сервер REST для веб-приложений или для любых других клиентов. Если услуга доступна в Интернете, вы должны рассматривать любое клиентское приложение как «врага». Я имею в виду, что вы не должны полагаться на какое-либо «доверенное» клиентское приложение, вы всегда должны выполнять аутентификацию, если клиент получает защищенный ресурс. Защищен ли ресурс, это зависит от вашего приложения. Я предпочитаю использовать oauth2 в обоих случаях. Если ресурс не защищен, я использую Client Credentials (http://tools.ietf.org/html/rfc6749#section-1.3.4), если он защищен, я использую токен доступа (http://tools.ietf.org/html/rfc6749#section-1.4). Это позволяет вам оставаться в одной и той же технологии и легко менять вещи в будущем, если это необходимо. Основываясь на моем личном опыте, я создал модуль oauthifizer (https://github.com/vedi/oauthifizer). На самом деле это обертка вокруг паспорта. Это делает его более дружественным в этих конкретных случаях.

  2. Вы можете взглянуть на эту статью: http://aleksandrov.ws/2013/09/12/restful-api-with-nodejs-plus-mongodb/. Опять же, вы можете попробовать попробовать restifizer (https://github.com/vedi/restifizer) - еще один модуль, который позволяет вам быстрее создавать службы RESTful. И есть короткий пример: https://github.com/vedi/restifizer-example

Надеюсь, это поможет.

Смежные вопросы