|
@@ -8,6 +8,7 @@ import 'package:fluttertoast/fluttertoast.dart'; |
|
|
import 'package:package_info/package_info.dart'; |
|
|
import 'package:package_info/package_info.dart'; |
|
|
import 'package:zhiying_comm/models/profile/profile_model.dart'; |
|
|
import 'package:zhiying_comm/models/profile/profile_model.dart'; |
|
|
import 'package:zhiying_comm/pages/auth_page/auth_success_page/auth_success_page.dart'; |
|
|
import 'package:zhiying_comm/pages/auth_page/auth_success_page/auth_success_page.dart'; |
|
|
|
|
|
import 'package:zhiying_comm/util/dialog/loading/loading.dart'; |
|
|
import 'package:zhiying_comm/util/taobao/taobao_auth_alert.dart'; |
|
|
import 'package:zhiying_comm/util/taobao/taobao_auth_alert.dart'; |
|
|
import 'package:zhiying_comm/zhiying_comm.dart'; |
|
|
import 'package:zhiying_comm/zhiying_comm.dart'; |
|
|
import 'package:provider/provider.dart'; |
|
|
import 'package:provider/provider.dart'; |
|
@@ -23,8 +24,61 @@ class TaobaoAuth { |
|
|
TaobaoAuth.alibcAppKey = alibcAppKey; |
|
|
TaobaoAuth.alibcAppKey = alibcAppKey; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 淘宝授权 |
|
|
|
|
|
static Future auth(BuildContext context) async { |
|
|
|
|
|
|
|
|
/// 因业务逻辑改变,每次是淘宝都必须检查是否授权 |
|
|
|
|
|
/// |
|
|
|
|
|
/// true:有授权,调用此方法可以继续往下走。 不需要打开授权窗口 |
|
|
|
|
|
/// false = 无授权,并且打开了授权窗口。 需要打开授权窗口 |
|
|
|
|
|
/// |
|
|
|
|
|
static Future<bool> auth(BuildContext context) async { |
|
|
|
|
|
|
|
|
|
|
|
/// 1、请求网络,获取授权状态 |
|
|
|
|
|
Loading.show(context); |
|
|
|
|
|
bool isAuth = await TaobaoAuth.isAuth(); |
|
|
|
|
|
Loading.dismiss(); |
|
|
|
|
|
|
|
|
|
|
|
/// 2、有授权,直接返回true,往下执行 |
|
|
|
|
|
if (isAuth) { |
|
|
|
|
|
Provider.of<UserInfoNotifier>(context, listen: false).updateUserAuth(true); |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// 3、打开淘宝授权弹窗,进行授权 |
|
|
|
|
|
bool isConfirm = await showDialog( context: context, builder: (_) => TaobaoAuthAlert()); |
|
|
|
|
|
if (isConfirm != null && isConfirm == true) { |
|
|
|
|
|
Map<String, dynamic> data = Map<String, dynamic>.from(await NetUtil.post('/api/v1/taobao/auth', method: NetMethod.GET)); |
|
|
|
|
|
Logger.debug(data); |
|
|
|
|
|
if (data['code'] != 1) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
String url = data['data']['redirect_url']; |
|
|
|
|
|
print("授权链接" + url); |
|
|
|
|
|
|
|
|
|
|
|
var resultMsg; |
|
|
|
|
|
if (Platform.isAndroid) { |
|
|
|
|
|
resultMsg = await FlutterAlibc.taoKeLoginNew(name, alibcAppKey); |
|
|
|
|
|
} else if (Platform.isIOS) { |
|
|
|
|
|
resultMsg = await FlutterAlibc.taoKeLoginNewIOS(name, alibcAppKey); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!EmptyUtil.isEmpty(resultMsg["accessToken"])) { |
|
|
|
|
|
Fluttertoast.showToast(msg: '授权成功~'); |
|
|
|
|
|
print("access 成功 $resultMsg"); |
|
|
|
|
|
Map<String, dynamic> params = {}; |
|
|
|
|
|
params['access_token'] = resultMsg["accessToken"]?.toString(); |
|
|
|
|
|
await NetUtil.post('/api/v1/tbredirect', params: params, method: NetMethod.POST); |
|
|
|
|
|
FlutterAlibc.loginOut(); |
|
|
|
|
|
} else { |
|
|
|
|
|
print("access 失败 $resultMsg"); |
|
|
|
|
|
Fluttertoast.showToast(msg: "access 失败 $resultMsg"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// |
|
|
|
|
|
/// 淘宝授权 |
|
|
|
|
|
/// ⚠️ 弃用: 因业务修改,使用上面一个方法 |
|
|
|
|
|
static Future authOld(BuildContext context) async { |
|
|
bool isAuth = await TaobaoAuth.isAuth(); |
|
|
bool isAuth = await TaobaoAuth.isAuth(); |
|
|
if (isAuth) { |
|
|
if (isAuth) { |
|
|
Fluttertoast.showToast(msg: '你已经授权过了'); |
|
|
Fluttertoast.showToast(msg: '你已经授权过了'); |
|
@@ -38,8 +92,7 @@ class TaobaoAuth { |
|
|
return TaobaoAuthAlert(); |
|
|
return TaobaoAuthAlert(); |
|
|
}); |
|
|
}); |
|
|
if (isConfirm != null && isConfirm == true) { |
|
|
if (isConfirm != null && isConfirm == true) { |
|
|
Map<String, dynamic> data = Map<String, dynamic>.from( |
|
|
|
|
|
await NetUtil.post('/api/v1/taobao/auth', method: NetMethod.GET)); |
|
|
|
|
|
|
|
|
Map<String, dynamic> data = Map<String, dynamic>.from(await NetUtil.post('/api/v1/taobao/auth', method: NetMethod.GET)); |
|
|
Logger.debug(data); |
|
|
Logger.debug(data); |
|
|
if (data['code'] != 1) { |
|
|
if (data['code'] != 1) { |
|
|
return null; |
|
|
return null; |
|
@@ -94,15 +147,10 @@ class TaobaoAuth { |
|
|
|
|
|
|
|
|
// 返回是否授权 |
|
|
// 返回是否授权 |
|
|
static Future<bool> isAuth() async { |
|
|
static Future<bool> isAuth() async { |
|
|
// if (_profile != null) { |
|
|
|
|
|
// return _profile.isAuth; |
|
|
|
|
|
// } |
|
|
|
|
|
try { |
|
|
try { |
|
|
Map<String, dynamic> data = Map<String, dynamic>.from( |
|
|
|
|
|
await NetUtil.post('/api/v1/user/profile', method: NetMethod.GET)); |
|
|
|
|
|
|
|
|
Map<String, dynamic> data = Map<String, dynamic>.from(await NetUtil.post('/api/v1/user/profile', method: NetMethod.GET)); |
|
|
if (data['code'] == 1) { |
|
|
if (data['code'] == 1) { |
|
|
ProfileModel _profile = |
|
|
|
|
|
ProfileModel.fromJson(Map<String, dynamic>.from(data['data'])); |
|
|
|
|
|
|
|
|
ProfileModel _profile = ProfileModel.fromJson(Map<String, dynamic>.from(data['data'])); |
|
|
return _profile.isAuth; |
|
|
return _profile.isAuth; |
|
|
} |
|
|
} |
|
|
} catch (e, s) { |
|
|
} catch (e, s) { |
|
|