1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
/*
Copyright (c) 2015-21 Miranda NG team (https://miranda-ng.org)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation version 2
of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _SKYPE_REQUEST_OAUTH_H_
#define _SKYPE_REQUEST_OAUTH_H_
struct OAuthRequest : public AsyncHttpRequest
{
OAuthRequest() :
AsyncHttpRequest(REQUEST_GET, HOST_OTHER, "https://login.live.com/login.srf", &CSkypeProto::OnOAuthStart)
{
flags |= NLHRF_REDIRECT;
this << CHAR_PARAM("wa", "wsignin1.0") << CHAR_PARAM("wp", "MBI_SSL")
<< CHAR_PARAM("wreply", "https://lw.skype.com/login/oauth/proxy?site_name=lw.skype.com")
<< CHAR_PARAM("cobrandid", "90010");
}
OAuthRequest(const char *login, const char *password, const char *cookies, const char *ppft) :
AsyncHttpRequest(REQUEST_POST, HOST_OTHER, "https://login.live.com/ppsecure/post.srf", &CSkypeProto::OnOAuthConfirm)
{
this << CHAR_PARAM("wa", "wsignin1.0") << CHAR_PARAM("wp", "MBI_SSL")
<< CHAR_PARAM("wreply", "https://lw.skype.com/login/oauth/proxy?site_name=lw.skype.com")
<< CHAR_PARAM("cobrandid", "90010");
m_szUrl.AppendFormat("?%s", m_szParam.c_str());
m_szParam.Empty();
AddHeader("Cookie", cookies);
if (auto *delim = strchr(login, ':'))
login = delim + 1;
this << CHAR_PARAM("login", login) << CHAR_PARAM("passwd", password) << CHAR_PARAM("PPFT", ppft);
}
OAuthRequest(const char *cookies, const char* ppft, const char* opid) :
AsyncHttpRequest(REQUEST_POST, HOST_OTHER, "https://login.live.com/ppsecure/post.srf", &CSkypeProto::OnOAuthAuthorize)
{
this << CHAR_PARAM("wa", "wsignin1.0") << CHAR_PARAM("wp", "MBI_SSL")
<< CHAR_PARAM("wreply", "https://lw.skype.com/login/oauth/proxy?site_name=lw.skype.com")
<< CHAR_PARAM("cobrandid", "90010")
<< CHAR_PARAM("id", "293290")
<< CHAR_PARAM("opid", opid);
m_szUrl.AppendFormat("?%s", m_szParam.c_str());
m_szParam.Empty();
AddHeader("Cookie", cookies);
this << CHAR_PARAM("type", "28") << CHAR_PARAM("PPFT", ppft);
}
OAuthRequest(const char *t) :
AsyncHttpRequest(REQUEST_POST, HOST_LOGIN, "/login/microsoft", &CSkypeProto::OnOAuthEnd)
{
this << CHAR_PARAM ("t", t) << CHAR_PARAM("site_name", "lw.skype.com") << INT_PARAM ("oauthPartner", 999);
}
};
#endif //_SKYPE_REQUEST_OAUTH_H_
|