IOS 学习

IOS JWT 解析。

2021-05-12  本文已影响0人  hiasyou

在移动端和服务端通信中,一般有两种认证方式:token 和 session。

1、session/cookie 认证机制:

在服务端创建一个Session对象,同时在客户端的浏览器端创建一个Cookie对象;通过客户端发来的请求中携带的Cookie对象与服务器端的session对象进行匹配,来实现认证

2、token 认证机制:

token 认证优势:

token 解析代码: 可以获得创建时间和过期时间

-(NSDictionarys*)jwtDecodeWithJwtString:(NSString *)jwtStr {

    NSArray * segments = [jwtStr componentsSeparatedByString:@"."];
    NSString * base64String = [segments objectAtIndex:1]; int requiredLength = (int)(4 *ceil((float)[base64String length]/4.0)); int nbrPaddings = requiredLength - (int)[base64String length]; if(nbrPaddings > 0) {
        NSString * pading = [[NSString string] stringByPaddingToLength:nbrPaddings withString:@"=" startingAtIndex:0];
        base64String = [base64String stringByAppendingString:pading];
    }
    base64String = [base64String stringByReplacingOccurrencesOfString:@"-" withString:@"+"];
    base64String = [base64String stringByReplacingOccurrencesOfString:@"_" withString:@"/"];
    NSData * decodeData = [[NSData alloc] initWithBase64EncodedData:[base64String dataUsingEncoding:NSUTF8StringEncoding] options:0];
    NSString * decodeString = [[NSString alloc] initWithData:decodeData encoding:NSUTF8StringEncoding];
    NSDictionary * jsonDict = [NSJSONSerialization JSONObjectWithData:[decodeString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]; return jsonDict;
}

可以设置 token 的失效日期,若 token 失效,则清除 token。
转自:https://www.cnblogs.com/ZachRobin/p/9774122.html

上一篇下一篇

猜你喜欢

热点阅读