我正在CakePHP应用程序中实现OpenId登录.在某个时刻,我需要重定向到另一个动作,同时保留有关OpenId身份的信息,例如,它本身就是一个URL(带有GET参数),例如
https://www.google.com/accounts/o8/id?id=31g2iy321i3y1idh43q7tyYgdsjhd863Es
我如何传递这些数据?第一次尝试将是
function openid() {
...
$this->redirect(array('controller' => 'users', 'action' => 'openid_create', $openid));
}
Run Code Online (Sandbox Code Playgroud)
但显而易见的问题是,这完全搞砸了CakePHP解析URL参数的方式.
我需要做以下任何一种情况:
1)以CakePHP友好的方式对URL进行编码以传递它,然后对其进行解码,或者
2)将URL作为POST参数传递
但我不知道该怎么做.
编辑:回应评论,我应该更清楚.我正在使用OpenId组件,我有一个有效的OpenId实现.我需要做的是将OpenId链接到现有的用户系统.当新用户通过OpenId登录时,我会询问更多详细信息,然后使用此数据创建新用户.问题是我必须在整个过程中保留OpenId URL.