Здравствуйте.
Вопрос общий, не уверен как именно задать.
Есть (мой) сайт на ASP.NET MVC, на сайте включена OAuth авторизация (гугл, фейсбук и т.п. из коробки), и который предоставляет Web API.
Пользователи могут регистрироваться с гугловским-фесбуковским и т.п. аккаунтом, это работает.
Но есть еще "десктопный" клиеет, который коннектится к этому сайту.
Хочется, чтобы десктопный клиент мог использовать авторизацию от гугла, фейсбука, и т.п. для обращения на сайт.
Т.е. чтобы он мог работать с сайтом "от имени" пользователя.
Как это организовывается? (что почитать на эту тему)
Спасибо
Здравствуйте, bnk, Вы писали:
bnk>Как это организовывается? (что почитать на эту тему)
OAuth аутентификация требует браузера. По определению.
Все что ты можешь сделать это выдать некий временный token (на сервере) и каким-то образом его передать в свое приложение.
Каким именно образом — вариантов несколько.
Здравствуйте, c-smile, Вы писали:
bnk>>Как это организовывается? (что почитать на эту тему)
CS>OAuth аутентификация требует браузера. По определению. CS>Все что ты можешь сделать это выдать некий временный token (на сервере) и каким-то образом его передать в свое приложение. CS>Каким именно образом — вариантов несколько.
А можно поподробнее (или направление)?
Т.е. идея такая, что в своем "десктопном" приложении я логинюсь (например) в фейсбук (не суть важно как — например открыв браузер-контрол), он мне выдает токен, а потом клиентское приложение использует этот полученный от фейсбука токен для авторизации уже на моем сайте (т.е. для авториззации уже в АПИ). Т.е. сайт по этому токену должен как-то понять что я за пользователь. Примерно то что хочется.
Впрочем я похоже что-то торможу.
Если пользователь залогинился через third-party сервис, у меня же будет его email!
А по email я его смогу идентифицировать. Вроде так?
Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте. bnk>Вопрос общий, не уверен как именно задать.
bnk>Есть (мой) сайт на ASP.NET MVC, на сайте включена OAuth авторизация (гугл, фейсбук и т.п. из коробки), и который предоставляет Web API. bnk>Пользователи могут регистрироваться с гугловским-фесбуковским и т.п. аккаунтом, это работает.
bnk>Но есть еще "десктопный" клиеет, который коннектится к этому сайту. bnk>Хочется, чтобы десктопный клиент мог использовать авторизацию от гугла, фейсбука, и т.п. для обращения на сайт. bnk>Т.е. чтобы он мог работать с сайтом "от имени" пользователя.
bnk>Как это организовывается? (что почитать на эту тему) bnk>Спасибо
Смотри в сторону REST
Re: Переформулирую. Как пользоваться Web API с "внешней" авторизаций
Наверное переформулирую вопрос.
Есть сайт на MVC, который имеет некое REST API и поддерживает "встроенную" и "внешнюю" авторизацию (внешняя — это те самый фейсбук, гугл, и т.д.)
Есть клиентское приложение (не web).
Как ему использовать API с "внешней" авторизацией?
Т.е. для "встроенной" все понятно — зовем Login(username, password), получаме токен,
дальше при вызовах методов API посылаем этот токен вместе с запросом.
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, bnk, Вы писали:
bnk>>Как это организовывается? (что почитать на эту тему)
CS>OAuth аутентификация требует браузера. По определению. CS>Все что ты можешь сделать это выдать некий временный token (на сервере) и каким-то образом его передать в свое приложение. CS>Каким именно образом — вариантов несколько.
Я согалсен что через браузер. Как это сделать-то?
Вроде еще раз определили для себя задачу:
— Есть сайт, у него есть REST API (WEB API), и авторизация (обычная парольная и OAuth гугл-фейсбук-и т.п.)
Как мне вызывать это WEB API из клиента, если клинет не браузер (например, из консольного приложения)?
Запустить окошко с контролом браузера, чтобы ползователь мог залогиниться — это без проблем. Вопрос в том, что дальше-то делать?
Т.е. какие данные (Claims/Token/whatever) мне нужно взять у этого браузера и куда их засунуть при обращении к API?