You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Dart
		
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Dart
		
	
| 
											3 months ago
										 | import 'dart:convert'; | ||
|  | 
 | ||
|  | import 'package:flutter/material.dart'; | ||
|  | import 'package:webview_flutter/webview_flutter.dart'; | ||
|  | 
 | ||
|  | class SsoLoginWebView extends StatefulWidget { | ||
|  |   final String url; | ||
|  |   final String jwtToken; | ||
|  | 
 | ||
|  |   SsoLoginWebView({required this.url, required this.jwtToken}); | ||
|  | 
 | ||
|  |   @override | ||
|  |   State<SsoLoginWebView> createState() => _SsoLoginWebViewState(); | ||
|  | } | ||
|  | 
 | ||
|  | class _SsoLoginWebViewState extends State<SsoLoginWebView> { | ||
|  |   late final WebViewController _controller; | ||
|  | 
 | ||
|  |   @override | ||
|  |   void initState() { | ||
|  |     // TODO: implement initState
 | ||
|  |     super.initState(); | ||
|  |     _controller = | ||
|  |         WebViewController() | ||
|  |           ..setJavaScriptMode(JavaScriptMode.unrestricted) | ||
|  |           ..setNavigationDelegate( | ||
|  |             NavigationDelegate( | ||
|  |               onProgress: (int progress) { | ||
|  |                 print("WebView is loading (progress: $progress%)"); | ||
|  |               }, | ||
|  |               onPageStarted: (String url) { | ||
|  |                 print("Page started loading: $url"); | ||
|  |               }, | ||
|  |               onPageFinished: (String url) { | ||
|  |                 print("Page finished loading: $url"); | ||
|  |               }, | ||
|  |               onHttpError: (HttpResponseError error) { | ||
|  |                 print("HTTP error: ${error.toString()} for URL: ${error.response!.statusCode}"); | ||
|  |               }, | ||
|  |               onWebResourceError: (WebResourceError error) { | ||
|  |                 print("Web resource error: ${error.description} for URL: ${error.errorType}"); | ||
|  |               }, | ||
|  |             ), | ||
|  |           ) | ||
|  |           ..loadHtmlString(''' 
 | ||
|  |        <!DOCTYPE html> | ||
|  | <html> | ||
|  | <body onload="document.forms[0].submit()"> | ||
|  | <form method="POST" action="https://ek.techmaster.in/SSO/HMG"> | ||
|  | <input type="hidden" name="JWTToken" value="${widget.jwtToken}" /> | ||
|  | </form> | ||
|  | <h1>Redirecting...</h1> | ||
|  | </body> | ||
|  | </html>''');
 | ||
|  |   } | ||
|  | 
 | ||
|  |   @override | ||
|  |   Widget build(BuildContext context) { | ||
|  |     return Scaffold(appBar: AppBar(title: Text('Logging in...')), body: WebViewWidget(controller: _controller)); | ||
|  |   } | ||
|  | } |