drupal_login.dart 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // Automatic FlutterFlow imports
  2. import '/backend/schema/structs/index.dart';
  3. import '/flutter_flow/flutter_flow_theme.dart';
  4. import '/flutter_flow/flutter_flow_util.dart';
  5. import 'index.dart'; // Imports other custom actions
  6. import '/flutter_flow/custom_functions.dart'; // Imports custom functions
  7. import 'package:flutter/material.dart';
  8. // Begin custom action code
  9. // DO NOT REMOVE OR MODIFY THE CODE ABOVE!
  10. import 'dart:convert';
  11. import 'package:http/http.dart' as http;
  12. Future<dynamic> drupalLogin(
  13. String username,
  14. String password,
  15. String loginUrl,
  16. ) async {
  17. try {
  18. final ingevoerdeUrl = loginUrl.trim();
  19. final apiBase = FFAppState().apiBaseUrl.trim().isEmpty
  20. ? 'https://uitgaanskrant.com'
  21. : FFAppState().apiBaseUrl.trim();
  22. loginUrl = (ingevoerdeUrl.startsWith('http://') ||
  23. ingevoerdeUrl.startsWith('https://'))
  24. ? ingevoerdeUrl
  25. : apiBase +
  26. (ingevoerdeUrl.startsWith('/') ? ingevoerdeUrl : '/$ingevoerdeUrl');
  27. final response = await http.post(
  28. Uri.parse(loginUrl),
  29. headers: {
  30. 'Content-Type': 'application/json',
  31. 'Accept': 'application/json',
  32. },
  33. body: jsonEncode({
  34. 'username': username,
  35. 'password': password,
  36. }),
  37. );
  38. if (response.statusCode == 200) {
  39. final data = jsonDecode(response.body);
  40. FFAppState().userSessionid = data['sessid']?.toString() ?? '';
  41. FFAppState().userSessionname = data['session_name']?.toString() ?? '';
  42. FFAppState().userToken = data['token']?.toString() ?? '';
  43. FFAppState().userName = data['user']?['name']?.toString() ?? '';
  44. FFAppState().userUid =
  45. int.tryParse(data['user']?['uid']?.toString() ?? '') ?? 0;
  46. FFAppState().userMail = data['user']?['mail']?.toString() ?? '';
  47. FFAppState().laatsteGebruikersnaam = username;
  48. return {
  49. 'success': true,
  50. 'sessid': data['sessid'],
  51. 'session_name': data['session_name'],
  52. 'token': data['token'],
  53. 'uid': data['user']['uid']?.toString(),
  54. 'name': data['user']['name'],
  55. 'mail': data['user']['mail'],
  56. };
  57. } else {
  58. return null;
  59. }
  60. } catch (e) {
  61. return null;
  62. }
  63. }
  64. // Set your action name, define your arguments and return parameter,
  65. // and then add the boilerplate code using the `</>` button on the right!