В этой статье я объясню, как войти в систему с помощью учетной записи Twitter в веб-приложении Asp.net MVC.
В моей предыдущей статье я объяснил следующие методы аутентификации в MVC.
Как войти с помощью API учетной записи Google в Asp.net MVC — 5
Как войти через Facebook в Asp.net MVC
Здесь я буду использовать Visual Studio 2013 и MVC 5 в своем веб-приложении Asp.net.
Включите аутентификацию или войдите в свою учетную запись Twitter, вам нужно будет зарегистрировать приложение в Управлении приложениями Twitter. После регистрации приложения вы можете использовать ключ потребителя (ключ API) и секрет клиента (секрет API), предоставленные Twitter.
Хорошо, давайте начнем аутентификацию Asp.net MVC Twitter
Выполните следующие действия, чтобы реализовать «Вход в Twitter для вашего приложения Asp.net MVC».
Шаг 1: Создайте ключ API и секрет API
На первом этапе создайте новое приложение в Управлении приложениями Twitter для использования службы аутентификации Twitter. Убедитесь, что вы должны войти в свою учетную запись.
Сначала нажмите «Создать новое приложение».
В диалоговом окне «Новое приложение» напишите название проекта, описание и веб-сайт.
Нажмите кнопку «Создать приложение Twitter», чтобы создать приложение.
На следующем шаге мы находим ключ API и секрет API.
Теперь мы переходим к нашему проекту веб-приложения.
Шаг 2. Создайте новый проект.
Перейдите в меню «Файл» > «Создать» > «Проект» > «Веб» > «Веб-проект Asp.net MVC» > «Введите имя приложения» > «Выберите местоположение проекта» > нажмите кнопку «Добавить» > Появится новое диалоговое окно для выбора шаблона > здесь мы выберем пустой проект > затем нажмите взял
Шаг 3. Создайте контроллер.
Перейдите в Обозреватель решений › Щелкните правой кнопкой мыши папку «Контроллеры» в форме Обозреватель решений › Добавить › Контроллер › Введите имя контроллера › Выберите Шаблон «пустой контроллер MVC» › Добавить.
Здесь я создал контроллер «HomeController».
Теперь мы добавим представление для действия Index (которое уже добавлено в домашний контроллер), где мы реализуем аутентификацию учетной записи Twitter.
Шаг 4. Добавьте представление для действия Index.
Щелкните правой кнопкой мыши метод действия (здесь щелкните правой кнопкой мыши действие «Индекс») › Добавить представление › Введите имя представления › Выберите «Пустой» в раскрывающемся списке «Шаблон» › Проверьте использование страницы макета › Добавить.
Шаг 5. Установите библиотеку TweetSharp.
Перейдите в «Консоль диспетчера пакетов», введите «Install-Package TweetSharp-Unofficial» и нажмите Enter.
Шаг 6. Добавьте метод аутентификации Twitter в HomeController
Добавьте метод GET «TwitterAuth» в HomeController.
[HttpGet] public ActionResult TwitterAuth() { string Key = "Twitter API Key"; string Secret = "Twitter API Secret"; TwitterService service = new TwitterService(Key, Secret); OAuthRequestToken requestToken = service.GetRequestToken("http://localhost:33916/Home/TwitterCallback"); Uri uri = service.GetAuthenticationUrl(requestToken); return Redirect(uri.ToString()); }
Шаг 7. Добавьте метод для получения данных профиля пользователя в Home Controller
Теперь мы создаем метод в HomeController для получения данных пользователя.
public ActionResult TwitterCallback(string oauth_token, string oauth_verifier) { var requestToken = new OAuthRequestToken { Token = oauth_token }; string Key = "Twitter API Key"; string Secret = "Twitter API Secret"; try { TwitterService service = new TwitterService(Key, Secret); OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier); service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret); VerifyCredentialsOptions option = new VerifyCredentialsOptions(); TwitterUser user = service.VerifyCredentials(option); TempData["Name"] = user.Name; TempData["Userpic"] = user.ProfileImageUrl; return View(); } catch { throw; } }
Теперь весь файл HomeController будет выглядеть следующим образом:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using TweetSharp; namespace Twitter_Login.Controllers { public class HomeController : Controller { [HttpGet] public ActionResult TwitterAuth() { string Key = "Twitter API Key"; string Secret = "Twitter API Secret"; TwitterService service = new TwitterService(Key, Secret); OAuthRequestToken requestToken = service.GetRequestToken("http://localhost:33916/Home/TwitterCallback"); Uri uri = service.GetAuthenticationUrl(requestToken); return Redirect(uri.ToString()); } public ActionResult TwitterCallback(string oauth_token, string oauth_verifier) { var requestToken = new OAuthRequestToken { Token = oauth_token }; string Key = "Twitter API Key"; string Secret = "Twitter API Secret"; try { TwitterService service = new TwitterService(Key, Secret); OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier); service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret); VerifyCredentialsOptions option = new VerifyCredentialsOptions(); TwitterUser user = service.VerifyCredentials(option); TempData["Name"] = user.Name; TempData["Userpic"] = user.ProfileImageUrl; return View(); } catch { throw; } } public ActionResult Index() { return View(); } } }
Шаг 8. Создайте метод View for TwitterCallback
Теперь нам нужно добавить View для метода «TwitterCallback» и добавить соответствующий html.
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>TwitterCallback</title> </head> <body> <div> <h1>Welcome @TempData["Name"]</h1> <br /> <img src="@TempData["Userpic"]" style="width:100px;height:100px;" /> </div> </body> </html>
Шаг 9. Вызовите TwitterAuth из представления индекса
Теперь я вызову метод «TwitterAuth» из представления индекса.
Добавьте следующий HTML-код в представление индекса
@using (Html.BeginForm("TwitterAuth", "Home", FormMethod.Get)) { <br /> <button type="submit" id="twitter">Login with Twitter</button> }
Шаг 6. Запустите приложение
Мы сделали все шаги. Теперь пришло время запустить приложение.
Первоначально опубликовано на tutorialslink.com.