【问题标题】:X-Auth-Token Invalid After 1 SessionX-Auth-Token 在 1 个会话后无效
【发布时间】:2015-04-29 09:10:27
【问题描述】:

我正在 Xcode 中开发 iOS 应用程序并使用 AFNetworking 与 API 对话 - API 使用“X-Auth-Token”。因此,当我登录并将会话令牌存储在用户默认值中时,它可以正常工作,直到重新启动应用程序 - 会话令牌由于某种原因不起作用?

令牌在 AFNetworking 中使用如下:

NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setValue:@"SessionTokenFromUserDefaults" forKey:@"X-Auth-Token"];

有人有什么建议吗? (PS:我在重启后使用token的时候从AFN得到的错误是:请求失败:未授权(401)

如果不登录每个会话,我怎么能做到这一点?

非常感谢!

【问题讨论】:

    标签: ios xcode api networking afnetworking


    【解决方案1】:

    我记得在没有缓存策略的情况下使用 NSURLConnections 时遇到了这类问题。 我认为有一个thread here 可能会有所帮助。

    【讨论】:

    【解决方案2】:

    服务器报Request failed: authorized (401) 很有可能是因为token是空的。

    要调试,您可以在 AppDelegate 中添加这两行

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [[AFNetworkActivityLogger sharedLogger] startLogging];
        [[AFNetworkActivityLogger sharedLogger] setLevel:AFLoggerLevelDebug];
    }
    

    然后你可以检查你的日志中的请求,看看是否确实在header中设置了token。

    【讨论】:

      【解决方案3】:

      我找到了解决问题的方法 - 这是我使用的方法:

      AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
      [manager.requestSerializer setValue:sessionToken forHTTPHeaderField:@"X-Auth-Token"];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-03
        • 1970-01-01
        • 2017-08-01
        相关资源
        最近更新 更多