我正在构建一个小型 REST 服务来授权用户进入我的应用程序。
在某一时刻,我用来授权用户的 UIWebView 将转到https://myautholink.com/login.php。此页面发送带有授权令牌的 JSON 响应。关于这个页面的事情是它通过我的授权表通过 GET 接收一些数据。我无法使用 PHP 会话,因为您通过以下方式到达此页面:
header("location:https://myautholink.com/login.php?user_id=1&machine_id=machine_id&machine_name=machine_name&app_id=app_id");
由于标头函数发送标头,我不能同时做session_start();
。
我可以使用委托方法毫无问题地获取 UIWebView 的请求 URL:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSURLRequest *request = [webView request];
NSLog(@"%@", [[request URL] relativeString]);
if([[[request URL] absoluteString] isEqualToString:SPAtajosLoginLink])
{
//Store auth token and dismiss auth web view.
}
}
问题是没有一个 NSURL 方法似乎返回没有参数的“干净”链接。我查看了所有与 NSURL url-string 相关的方法:
- (NSString *)absoluteString;
- (NSString *)relativeString; // The relative portion of a URL. If baseURL is nil, or if the receiver is itself absolute, this is the same as absoluteString
但是 absoluteString 始终是带有 GET 参数的完整 URL,而 relativeString 始终是 nil。
我为此挠头,似乎找不到解决方案。任何帮助将不胜感激。