微博登录报Invalid Weibo session

2018-10-12 00:42:33.838747+0800 SomeBox[6258:1669377] [💚DEBUG] -[AVPaasClient performRequest:success:failure:wait:] [Line 621]

------ BEGIN LeanCloud REST Request -------
path: /1.1/users
curl: curl -i -k -X POST -d '{"authData":{"weibo":{"uid":"6101789403","expires_in":1696954583647211.2,"access_token":"2.00HKUweG0oI4Yxa4b4dc9a3bcak5mB","platform":"weibo"}}}' --compressed -H 'Accept: application/json' -H 'Content-Type: application/json; charset=utf-8' -H 'X-LC-Prod: 1' -H 'User-Agent: AVOS Cloud iOS-v11.4.2 SDK' -H 'Accept-Language: zh-Hans-CN;q=1' -H 'Accept-Encoding: gzip' -H 'X-LC-Id: pmsdrggDUr6iRe22Kjc7pNDR-gzGzoHsz' "https://pmsdrggd.api.lncld.net/1.1/users"
------ END --------------------------------
2018-10-12 00:42:34.207059+0800 SomeBox[6258:1669509] [💚DEBUG] -[AVPaasClient performRequest:success:failure:wait:]blockinvoke [Line 667]

------ BEGIN LeanCloud REST Response ------
path: /1.1/users
cost: 367.466ms
response: Error Domain=com.LeanCloud.ErrorDomain Code=251 "Invalid Weibo session." UserInfo={NSLocalizedFailureReason=Invalid Weibo session., com.alamofire.serialization.response.error.data=<7b22636f 6465223a 3235312c 22657272 6f72223a 22496e76 616c6964 20576569 626f2073 65737369 6f6e2e22 7d>, com.leancloud.restapi.response.error={
code = 251;
error = "Invalid Weibo session.";
}}
------ END --------------------------------

我查过了 我的access_token 是正确的,不知道Leancloud判断session为非法的依据是什么?长度吗?还是去微博那边验证一遍?

官方给个解释下啊

你好,请问使用的是哪个版本的 SDK?麻烦粘贴一下微博登录的方法。

版本详情如下:
- AVOSCloud (11.4.2)
- AVOSCloudIM (11.4.2):
- AVOSCloud (= 11.4.2)
- AVOSCloudIM/_ARC (= 11.4.2)
- AVOSCloudIM/_NOARC (= 11.4.2)
- AVOSCloudIM/_ARC (11.4.2):
- AVOSCloud (= 11.4.2)
- AVOSCloudIM/_NOARC (= 11.4.2)
- AVOSCloudIM/_NOARC (11.4.2):
- AVOSCloud (= 11.4.2)

代码如下:

  • (void)loginWithUser:(SSDKUser *)user{

    NSMutableDictionary *authDic = [NSMutableDictionary dictionary];
    [authDic setValue:user.credential.token forKey:@"access_token"];
    [authDic setValue:@(user.credential.expired) forKey:@"expires_in"];

    if (user.platformType == SSDKPlatformTypeSinaWeibo) {
    [authDic setValue:user.uid forKey:@"uid"];
    }

    AVUser *avuser = [AVUser user];
    AVUserAuthDataLoginOption *option = [AVUserAuthDataLoginOption new];
    option.platform = LeanCloudSocialPlatformWeiBo;
    [avuser loginWithAuthData:authDic platformId:LeanCloudSocialPlatformWeiBo options:option callback:^(BOOL succeeded, NSError * _Nullable error) {
    if (succeeded) {
    NSLog(@"登录成功");
    }else{
    NSLog(@"登录失败:%@",error.localizedFailureReason);
    }
    }];

}

希望官方可以给个回复

请您稍等,我们正在调查。

好的 我试试看

你好,这边测试后未能复现这个问题,从安全性角度来说,是需要验证这个 access_token 的。
之前用的 access_token 是不是过期了?可以用这个 token 直接访问下 weibo 的接口确认下。