我难以实现通过Laravel 5.6
重定向到移动应用网址的重定向。
因此,想法是API
处理请求,并根据用户代理将其重定向到android
或ios
应用。
控制器
/**
* Reset password redirect logic.
* Redirect user to either android or iphone app based on http user agent.
*
* @param RedirectRequest $request
* @return RedirectResponse
*/
public function redirect(RedirectRequest $request): RedirectResponse
{
$email = $request->get('email');
$rememberToken = $request->get('rememberToken');
$userAgent = $request->server('HTTP_USER_AGENT');
if (strpos(strtolower( $userAgent ), 'iphone' ) !== false) {
return redirect()->to(
env('FORGET_PASSWORD_IOS_URL') . '?$email=' . $email . '&rememberToken=' . $rememberToken
);
} else if (strpos(strtolower( $userAgent ), 'android' ) !== false) {
return redirect()->to(
env('FORGET_PASSWORD_ANDROID_URL') . '?$email=' . $email . '&rememberToken=' . $rememberToken
);
}
}
.env
# URL SCHEMA FROM MOBILE APP DEVELOPERS.
FORGET_PASSWORD_IOS_URL=mobileapp://
FORGET_PASSWORD_ANDROID_URL=mobileapp://
因此,其背后的想法是,当用户请求从移动应用重置密码时,他们会收到一封电子邮件,并且该电子邮件将包含指向api的链接。用户访问链接后,他们将被重定向到android或ios应用以继续。
用户在电子邮件中收到的链接如下所示。 http://api.url.com/password-reset?email=<email>&rememberToken=<TOKEN>
用户访问网址后,我希望结果在浏览器中。
mobileapp://?email=me@email.com&rememberToken=<TOKEN>
实际结果。
http://api.url.com/mobileapp:?email=me@email.com&rememberToken=<TOKEN>
有人遇到过吗?或有什么建议?
答案 0 :(得分:0)
您应该使用此方法:
$url = env('FORGET_PASSWORD_IOS_URL') . '?$email=' . $email . '&rememberToken=' . $rememberToken;
return redirect()->away($url);