2014-01-24 3 views
0

Я использую has_secure_password и bcrypt для аутентификации, но не deivse. Я в основном ссылаюсь на Railscasts и передаю все данные, такие как provider/uid/info.name/credentials.token. Так как моя модель пользователя проверяет password, поэтому я пытаюсь передать в oauth-tokenpassword, поэтому я могу поместить этого пользователя в свой db. Мой вопрос в том, есть ли риск безопасности для лечения oauth-token в качестве пароля? Какова первоначальная цель для oauth-token? Спасибо.Какова цель oauth-токена Ruby on Rails gem omniauth-facebook?

ответ

0

Я даже не знаю, с чего начать ... Непонятно, пытаетесь ли вы внедрить FB Connect и делаете это неправильно или пытаетесь реализовать аутентификацию пользователя, и делаете это неправильно, используя материал, связанный с OAuth.

Идентификаторы OAuth используются для аутентификации пользователя постороннего лица, чтобы получить доступ к их API, например. Таким образом, в случае Facebook Connect вы должны сами авторизоваться, а затем получить для них токен OAuth, чтобы вы могли получить доступ к третьей стороне от их имени. Для этого я предлагаю прочитать ресурсы OAuth.

В любом случае использование токена OAuth для любого неверного пароля. Тоны OAuth не являются постоянными, они истекают, и их можно отменить и восстановить. Смысл в вашем случае, пароль будет меняться во всех этих случаях. Если вы просто используете OAuth connect, вам вообще не нужны какие-либо пароли для пользователя.

+0

Спасибо за ваш ответ, я пытаюсь внедрить FB-соединение (социальный вход) с gem 'omniauth-facebook', а так как моя модель пользователя проверяет пароль, если какой-либо пользователь использует социальный логин без пароля, Я пытаюсь использовать oauth-токен, сгенерированный moniauth в качестве пароля (пароль не будет простым текстом, так как я использую bcrypt для аутентификации). Сейчас это работает отлично, и мне просто интересно, есть ли какая-то неизвестная проблема безопасности, делая это. Спасибо за ваш ответ. – Disco26

+0

Если вы просто заполняете пароль, чтобы ваша модель пользователя была действительной, я бы предложил просто создать случайный пароль вместо использования хэша маркера. Что-то вроде SecureRandom.hex (8) должно быть точным (он генерирует шестнадцатеричную шестнадцатеричную строку длиной 16 символов). –

+0

Я попробую, спасибо за вашу помощь! – Disco26