一、简介
用户授权服务是在C端 APP 中提供用户登录后的授权信息管理的服务。包含对授权信息的缓存与更新,并提供基础的用户授权操作。由于用户的实际授权方式有多种(包含账号密码登录、手机短信验证码登录、第三方账号登录等),授权服务仅提供最常用的账号密码登录功能。其它的功能请通过C端 APP 的 API 完成登录操作。
授权服务的主要功能包含:授权信息的缓存与管理
二、服务功能
1、用户授权登录
通过授权服务进行登录时,服务默认会将授权登录成功后的授权信息缓存到服务中,后续需要授权信息时直接使用即可。
XFAuthServer *authServer = (XFAuthServer *)[[XFServerManager shareInstance] getServer:[XFAuthServer getId]];
NSString *account = @"账号";
NSString *password = @"密码";
[authServer authWithAccount:account password:password resource:nil callback:^(NSDictionary * _Nullable result, NSError * _Nullable error) {
if (error) {
//登录失败
} else {
//登录成功后的 xlink 用户授权信息
// SDictionary *userInfo = result;
}
}];
2、第三方用户授权服务
当不通过授权服务进行登录,或者是授权服务无法满足需要的登录方式,通过外部的登录方式获取到授权信息后,可以通过以下的方式将授权信息缓存到授权服务中,以便在其它地方或供其它的服务使用。
XFAuthServer *authServer = (XFAuthServer *)[[XFServerManager shareInstance] getServer:[XFAuthServer getId]];
NSString *openId = @"APP在第三方平台登录成功返回的用户标识";
NSString *accessToken = @"APP在第三方平台登录成功返回的用户凭证";
NSString *nickName = @"第三方用户昵称";
NSString *resource = @"登录源,用户可以在登录时指定登录源,不同登录源可同时登录,长度在0~16个字符之间";
[authServer authThirdPartWithOpenId:openId accessToken:accessToken nickName:nickName resource:resource callback:^(NSDictionary * _Nullable result, NSError * _Nullable error) {
if (error) {
//登录失败
} else {
//登录成功后的 xlink 用户授权信息
// SDictionary *userInfo = result;
}
}];
3、缓存授权信息
当不通过授权服务进行登录,或者是授权服务无法满足需要的登录方式,通过外部的登录方式获取到授权信息后,可以通过以下的方式将授权信息缓存到授权服务中,以便在其它地方或供其它的服务使用。
XFAuthServer *authServer = (XFAuthServer *)[[XFServerManager shareInstance] getServer:[XFAuthServer getId]];
// 创建AuthInfo对象并赋值,这里掠取赋值过程,需要根据实际请求得到的数据进行authInfo对象的各个属性(userId/accessToken/refreshToken/authorize)赋值。
XFLoginInfo *authInfo = [[XFLoginInfo alloc] init];
[authServer saveUserAuthInfo:authInfo];
4、监听授权信息变更
如果需要对授权信息变更进行监听,授权服务也提供了相应的功能以便其它服务使用。
XFAuthServer *authServer = (XFAuthServer *)[[XFServerManager shareInstance] getServer:[XFAuthServer getId]];
[authServer addAuthChangedCallback:^(NSDictionary * _Nullable result) {
// result为 用户授权信息更新成功后的 xlink 用户信息
}];