summaryrefslogtreecommitdiff
path: root/protocols/Teams/src/teams_login.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2025-03-31 12:28:23 +0300
committerGeorge Hazan <george.hazan@gmail.com>2025-03-31 12:28:23 +0300
commit4747d2ed93f4f916c72d29a8dcd35425fcfea880 (patch)
tree3f470a499870eca74df4378bf013f9e2d3ca3ca5 /protocols/Teams/src/teams_login.cpp
parent68ed297ee889cd21dbba8914f79dbef1a1e822e6 (diff)
icons for Teams
Diffstat (limited to 'protocols/Teams/src/teams_login.cpp')
-rw-r--r--protocols/Teams/src/teams_login.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/protocols/Teams/src/teams_login.cpp b/protocols/Teams/src/teams_login.cpp
index 72324355ac..515d84fa98 100644
--- a/protocols/Teams/src/teams_login.cpp
+++ b/protocols/Teams/src/teams_login.cpp
@@ -220,25 +220,22 @@ void CTeamsProto::OauthRefreshServices()
void CTeamsProto::Login()
{
- CMStringA szLogin(getMStringA("Login")), szPassword(getMStringA("Password"));
- if (szLogin.IsEmpty() || szPassword.IsEmpty()) {
- LoginError();
- return;
- }
-
- // login
+ // set plugin status to connect
int oldStatus = m_iStatus;
m_iStatus = ID_STATUS_CONNECTING;
ProtoBroadcastAck(0, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)oldStatus, m_iStatus);
+ // launch http queue
StartQueue();
+ // if refresh token doesn't exist, perform a device code authentication
m_szAccessToken = getMStringA("RefreshToken");
if (m_szAccessToken.IsEmpty()) {
auto *pReq = new AsyncHttpRequest(REQUEST_POST, HOST_LOGIN, "/common/oauth2/devicecode", &CTeamsProto::OnReceiveDeviceToken);
pReq << CHAR_PARAM("client_id", TEAMS_CLIENT_ID) << CHAR_PARAM("resource", TEAMS_OAUTH_RESOURCE);
PushRequest(pReq);
}
+ // or use a refresh token otherwise
else {
RefreshToken(TEAMS_OAUTH_SCOPE SCOPE_SUFFIX, &CTeamsProto::OnRefreshAccessToken);
OauthRefreshServices();