在 iOS 编程中使用 JWT 使用 Javascript 对象签名和加密 (JOSE) 进行加密?

Encryption with Javascript Object Signing and Encryption (JOSE) with JWT in iOS programming?

我正在尝试将 Javascript Object Signing and Encryption (JOSE) jose 与我的 iOS 应用程序集成。

参考This Sample code : hongkongkiwi/ObjectiveC-JOSE..使用这个尝试将我的输入参数作为加密格式发送到服务器。

如果有集成了JOSE的请提供一下过程

目前我已经实现了:

   NSURLSessionDataTask *dataTask =[[self dataSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

    if (error) {
        completionHandler(nil,error);
        return ;
    }

    id responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

    NSLog(@"response object :%@",responseObject);
}

实际上我找到了使用 JOSE 解码的片段:

http://popdevelop.com/2013/12/decode-json-web-token-jwt-in-ios-objective-c/ 但是没有找到任何用于编码的库..所以我怀疑是否可以使用 iOS 或不使用 JOSE 进行编码?

解决了 JSON WEB 令牌 cocoa pods 示例的问题。

安装 cocoa pod:

pod "JWT"

要对 JWT 进行编码和解码,请使用 JWTBuilder 接口的流畅样式

  • (JWTBuilder *)encodePayload:(NSDictionary *)payload;
  • (JWTBuilder *)encodeClaimsSet:(JWTClaimsSet *)claimsSet;
  • (JWTBuilder *)decodeMessage:(NSString *)消息;

您可以像这样编码任意有效载荷:

 NSDictionary *payload = @{@"foo" : @"bar"};
 NSString *secret = @"your secret key";
 id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory  algorithmByName:@"HS256"];

 [JWTBuilder encodePayload:payload].secret(@"secret").algorithm(algorithm).encode;

JWT 令牌将像这样示例:

"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJVc2VySWQiOiI1NmY2YWUxYjYwZDc0MTBjZjRkOWU1YjMiLCJyZXF1ZXN0X3R5cGUiOiIxIn0.AFK3zGF5HvIEl2Qr0cNHmmS97zJmfolipuUKOGdJzUY"

您可以在此处查看编码和解码值:

https://jwt.io/#debugger