drupal_login.dart 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. return {
  48. 'success': true,
  49. 'sessid': data['sessid'],
  50. 'session_name': data['session_name'],
  51. 'token': data['token'],
  52. 'uid': data['user']['uid']?.toString(),
  53. 'name': data['user']['name'],
  54. 'mail': data['user']['mail'],
  55. };
  56. } else {
  57. return null;
  58. }
  59. } catch (e) {
  60. return null;
  61. }
  62. }
  63. // Set your action name, define your arguments and return parameter,
  64. // and then add the boilerplate code using the `</>` button on the right!