场景: 安卓客户端请求苹果登陆认证会跳转浏览器进行认证,完成认证后会重定向至服务端(eggjs),然后服务端完成逻辑(生成token)后需要能够跳回安卓客户端。 问题: 我在一个第三方库提供的例子中,它使用的是express进行服务端的逻辑处理,最后使用
const url = `intent://callback?#Intent;package=PACKAGE;scheme=signinwithapple;end`;
response.redirect(307, url);
进行重定向回来客户端成功了。 但是在eggjs中我使用类似的重定向方法:
const url = 'intent://callback?#Intent;package=PACKAGE;scheme=signinwithapple;end';
ctx.status = 307;
ctx.redirect(url);
却是报404;
然后我调断点进入egg的redirect方法,发现它会因为我url变量中协议(protocal)写的是intent不是http/https而把url重置为"/",最后跑进了unsafeRedirect()。但我不知道是不是因为这个原因而导致的重定向失败。
所以我想知道,egg中有能够重定向回安卓客户端的方法吗?