ASP.NET рдХреЗ рд▓рд┐рдП OAuth2 рдХреНрд▓рд╛рдЗрдВрдЯ

OAuth2 рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ, OAuth 1.0 рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рдХрд╛рд╕ред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдпрд╣рд╛рдБ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

.Net рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп OAuth рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдШреВрдорддреЗ рд╣реБрдП, рдореБрдЭреЗ рдХреБрдЫ рднреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдорд┐рд▓рд╛ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рддреАрди рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЬрд╛рд░реА рдХрд░реЗрдВ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рд▓реМрдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрд╡реЗрджрди рдХреЛ рдЯреЛрдХрди рдЕрдиреБрд░реЛрдз рдкреГрд╖реНрда рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред

рдкрд╣рд▓реЗ рджреЛ рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ OAuthAuthorizer рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЗрдирд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдХрдХреНрд╖рд╛рдПрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, facebook рдФрд░ Vkontakte рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ - рдЖрдкрдХреЛ рдХреЗрд╡рд▓ AuthorizeUri рдФрд░ TokenUri рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░, рд╕рд╣рдкрд╛рдард┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрд░рд╛рдореАрдЯрд░ "response_type = code" рдЬреЛрдбрд╝реЗрдВред

рд▓реЗрдЦрдХ рдХрд╛ рдЖрд░рдВрдн рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
public RedirectResult LogOn()
{
var fbAuth = new FacebookAuthorizer();
fbAuth.ClientId = "2128506";
fbAuth.Scope = "user_work_history,friends_work_history,publish_stream,read_friendlists";
fbAuth.RedirectUri = "http://backtothefuture.com/Account/Return";
return Redirect(fbAuth.CodeRequestUri);
}


рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ fbAuth.CodeRequestUri рд╕реЗ рдкрддреЗ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рд╡рд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж facebook рдЙрд╕реЗ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджреЗрдЧрд╛, рдзреНрдпрд╛рди рд╕реЗ GET рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред

public ActionResult Return(string code)
{
var fbAuth = new FacebookAuthorizer();
fbAuth.ClientId = "2128506";
fbAuth.ClientSecret = "top_secret";
fbAuth.RedirectUri = "http://backtothefuture.com/Account/Return";
var response = auth.GetAuthorizationResponse(code);


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрд░ рдореЗрдВ рдЕрдм рдлреЗрд╕рдмреБрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреГрд╖реНрда рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЬреЛ, рдЕрдЧрд░ рд╣рдордиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рд╕рд╣реА рд╣реИ, рддреЛ рдПрдХ рдЯреЛрдХрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рдЕрд╕реАрдорд┐рдд (рдЕрдиреБрдорддрд┐ рдХреЗ рднреАрддрд░) рд╢рдХреНрддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдм рдЖрдк рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рддреАрд╕рд░рд╛, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдзред рдЗрд╕рдХреЗ рд▓рд┐рдП, IOAuthClient рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдХрдХреНрд╖рд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FacebookClient, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

var client = new FacebookClient();
client.Response = response;
Dictionary<string,object> me = OAuthClientUtils.JsonToDictionary(client.Me());
return Json(me);
}


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлреЗрд╕рдмреБрдХ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ Json рдСрдмреНрдЬреЗрдХреНрдЯ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб github рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдореИрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

Source: https://habr.com/ru/post/In127039/


All Articles