Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Side by Side Diff: utils/pub/oauth2.dart

Issue 12316036: Merge IO v2 branch to bleeding edge (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased to r18818 Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « utils/pub/io.dart ('k') | utils/testrunner/utils.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library oauth2; 5 library oauth2;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 import 'dart:uri'; 9 import 'dart:uri';
10 10
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 var grant = new AuthorizationCodeGrant( 163 var grant = new AuthorizationCodeGrant(
164 _identifier, 164 _identifier,
165 _secret, 165 _secret,
166 _authorizationEndpoint, 166 _authorizationEndpoint,
167 tokenEndpoint, 167 tokenEndpoint,
168 httpClient: httpClient); 168 httpClient: httpClient);
169 169
170 // Spin up a one-shot HTTP server to receive the authorization code from the 170 // Spin up a one-shot HTTP server to receive the authorization code from the
171 // Google OAuth2 server via redirect. This server will close itself as soon as 171 // Google OAuth2 server via redirect. This server will close itself as soon as
172 // the code is received. 172 // the code is received.
173 var completer = new Completer(); 173 return HttpServer.bind('127.0.0.1', 0).then((server) {
174 var server = new HttpServer(); 174 var authUrl = grant.getAuthorizationUrl(
175 server.addRequestHandler((request) => request.path == "/", 175 Uri.parse('http://localhost:${server.port}'), scopes: _scopes);
176 (request, response) {
177 chainToCompleter(defer(() {
178 log.message('Authorization received, processing...');
179 var queryString = request.queryString;
180 if (queryString == null) queryString = '';
181 response.statusCode = 302;
182 response.headers.set('location', 'http://pub.dartlang.org/authorized');
183 response.outputStream.close();
184 return grant.handleAuthorizationResponse(queryToMap(queryString));
185 }).then((client) {
186 server.close();
187 return client;
188 }), completer);
189 });
190 server.listen('127.0.0.1', 0);
191 176
192 var authUrl = grant.getAuthorizationUrl( 177 log.message(
193 Uri.parse('http://localhost:${server.port}'), scopes: _scopes); 178 'Pub needs your authorization to upload packages on your behalf.\n'
194 179 'In a web browser, go to $authUrl\n'
195 log.message( 180 'Then click "Allow access".\n\n'
196 'Pub needs your authorization to upload packages on your behalf.\n' 181 'Waiting for your authorization...');
197 'In a web browser, go to $authUrl\n' 182 return server.first.then((request) {
198 'Then click "Allow access".\n\n' 183 var response = request.response;
199 'Waiting for your authorization...'); 184 if (request.uri.path == "/") {
200 185 log.message('Authorization received, processing...');
201 return completer.future.then((client) { 186 var queryString = request.uri.query;
187 if (queryString == null) queryString = '';
188 response.statusCode = 302;
189 response.headers.set('location',
190 'http://pub.dartlang.org/authorized');
191 response.close();
192 return grant.handleAuthorizationResponse(queryToMap(queryString))
193 .then((client) {
194 server.close();
195 return client;
196 });
197 } else {
198 response.statusCode = 404;
199 response.close();
200 }
201 });
202 })
203 .then((client) {
202 log.message('Successfully authorized.\n'); 204 log.message('Successfully authorized.\n');
203 return client; 205 return client;
204 }); 206 });
205 } 207 }
OLDNEW
« no previous file with comments | « utils/pub/io.dart ('k') | utils/testrunner/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698