add basic oauth methods
This commit is contained in:
		
							parent
							
								
									387d58dfa2
								
							
						
					
					
						commit
						beaa70fe8b
					
				
					 15 changed files with 351 additions and 9 deletions
				
			
		
							
								
								
									
										53
									
								
								lib/business_logic/auth/oauth.dart
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								lib/business_logic/auth/oauth.dart
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,53 @@ | |||
| import 'package:http/http.dart' as http; | ||||
| import 'package:url_launcher/url_launcher.dart'; | ||||
| import '../../global.dart' as global; | ||||
| 
 | ||||
| class App { | ||||
|   late String clientSecret; | ||||
|   late String clientId; | ||||
|   late String id; | ||||
|   late String name; | ||||
|   late String website; | ||||
|   late String redirectUri; | ||||
|   App( | ||||
|       {required this.clientSecret, | ||||
|       required this.clientId, | ||||
|       required this.id, | ||||
|       required this.name, | ||||
|       required this.website, | ||||
|       required this.redirectUri}); | ||||
|   factory App.fromJson(Map<String, dynamic> json) { | ||||
|     return App( | ||||
|         id: json["id"].toString(), | ||||
|         name: json["name"].toString(), | ||||
|         website: json["website"].toString(), | ||||
|         redirectUri: json["redirect_uri"].toString(), | ||||
|         clientId: json["client_id"].toString(), | ||||
|         clientSecret: json["client_secret"].toString()); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| Future<http.Response> registerApp(String baseurl) async { | ||||
|   //String url = baseurl Uri."api/v1/apps"; | ||||
|   Uri url = Uri.https(baseurl, "/api/v1/apps"); | ||||
|   var response = await http.post(url, headers: global.defaultHeaders, body: { | ||||
|     'client_name': global.name, | ||||
|     'redirect_uris': "ietf:wg:oauth:2.0:oob", | ||||
|     'scopes': "read write", | ||||
|     'website': global.website | ||||
|   }); | ||||
|   return response; | ||||
| } | ||||
| 
 | ||||
| void openBrowserForAuthCode(String baseurl, App app) { | ||||
|   Uri url = Uri.https( | ||||
|       baseurl, | ||||
|       // ignore: prefer_interpolation_to_compose_strings | ||||
|       "/oauth/authorize" + | ||||
|           "?client_id=" + | ||||
|           app.clientId + | ||||
|           "&scope=read+write" + | ||||
|           "&redirect_uri=urn:ietf:wg:oauth:2.0:oob" + | ||||
|           "&response_type=code"); | ||||
|   launchUrl(url); | ||||
| } | ||||
							
								
								
									
										0
									
								
								lib/business_logic/auth/secrets.dart
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								lib/business_logic/auth/secrets.dart
									
										
									
									
									
										Normal file
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue