login.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import 'dart:convert';
  2. import 'package:app_business/generated/base.pb.dart' as pb;
  3. import 'package:app_business/service/api.dart';
  4. import 'package:get/get.dart';
  5. import 'package:track_common/track_common.dart';
  6. import 'package:track_common/view.dart';
  7. class LoginControllerImp extends LoginController {
  8. final _api = Get.find<ApiService>();
  9. @override
  10. Future<void> authSendCodeToPhone(String phone) async {
  11. return _api.authSendCodeToPhone(phone, SmsType.Login);
  12. }
  13. @override
  14. Future<Duration> getCodeLifeTime(String phone) {
  15. return _api.getSmsSendLeftTime(phone);
  16. }
  17. @override
  18. Future<void> signIn(String phone, String code) async {
  19. return _api.signIn(phone, code, '');
  20. }
  21. @override
  22. Future<(String, String)> getQrCode() async {
  23. final r = await _api.stub.toGetSignInQrCode(DefaultRequest());
  24. final json = const JsonEncoder().convert({'KeyType': 2, 'code': r.qrCode});
  25. return (json, r.qrCode);
  26. }
  27. @override
  28. Future<bool> isQrCodeOk(String codeValue) async {
  29. if (codeValue.isEmpty) {
  30. return false;
  31. }
  32. final r =
  33. await _api.stub.toQrCodeSignIn(pb.QrCodeInfo()..qrCode = qrCodeValue);
  34. final token = r.token.replaceAll("\"", "").trim();
  35. if (token.isEmpty) {
  36. return false;
  37. }
  38. debug('token: $token');
  39. _api.token = token;
  40. return true;
  41. }
  42. }