summaryrefslogtreecommitdiffstats
path: root/remoting/host/setup/oauth_helper.h
blob: cdb8445fea0ce3f018777e97680e20d5c85e3f3b (plain)
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
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef REMOTING_HOST_SETUP_OAUTH_HELPER_H
#define REMOTING_HOST_SETUP_OAUTH_HELPER_H

#include <string>

namespace remoting {

// Gets the OAuth scope of the host's refresh token.
std::string GetOauthScope();

// Gets the default redirect URL for the OAuth dance.
std::string GetDefaultOauthRedirectUrl();

// Gets a URL at which the OAuth dance starts.
std::string GetOauthStartUrl(const std::string& redirect_url);

// Returns the OAuth authorization code embedded in a URL, or the empty string
// if there is no such code.
// To get an OAuth authorization code, (i) start a browser, (ii) navigate it
// to |GetOauthStartUrl()|, (iii) ask the user to sign on to their account,
// and grant the requested permissions, (iv) monitor the URLs that the browser
// shows, passing each one to |GetOauthCodeInUrl()|, until that function returns
// a non-empty string. That string is the authorization code.
std::string GetOauthCodeInUrl(const std::string& url,
                              const std::string& redirect_url);

}  // namespace remoting

#endif  // REMOTING_HOST_SETUP_OAUTH_HELPER_H