授权服务

一、简介

用户授权服务是在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 用户信息
        
}];
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题