您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页swift-jwt解析

swift-jwt解析

来源:伴沃教育

现在用在登陆上使用token认证用户的情况很频繁,很多时候Token的解析规则又是使用的JWT的base64的方式,本文提供了swift解析jwt的方式 

extension String {
    func jwtDecode()->[String: Any]{ 
        /**分割为数组*/
        let segments = components(separatedBy: ".")
        /**获取第二个元素Payload负载元素(有意义的key就在里面解析的)*/
        var base64String = segments[1]
        /** base64解码*/
        let requiredLength =(4 * ceil((Float)(base64String.count)/4.0))
        let nbrPaddings = Int(requiredLength)- base64String.count
        if nbrPaddings > 0 { 
            let pading = "".padding(toLength: nbrPaddings,withPad: "=",startingAt: 0)
            base64String = base64String + pading
        }
        base64String = base64String.replacingOccurrences(of: "-",with: "+")
        base64String = base64String.replacingOccurrences(of: "_",with: "/")
        let decodeData = Data(base64Encoded: base64String,options: Data.Base64DecodingOptions.ignoreUnknownCharacters)
        let decodeString = String.init(data: decodeData!,encoding: String.Encoding.utf8)
        /**转为字典*/
        let jsonDict:[String : Any]? = try? JSONSerialization.jsonObject(with:(decodeString?.data(using: String.Encoding.utf8))!,options: JSONSerialization.ReadingOptions.mutableContainers)as![String : Any]
        /**返回jwt */ 
        return jsonDict ?? [:]
    }
}

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务