【发布时间】:2018-04-26 11:42:03
【问题描述】:
我有具有用户名和密码的应用程序,以便用户登录到该应用程序。 一些(不太重要的)功能仍然是网页。
但为了用户友好,用户在登录后再次登录很烦人。
我正在查看 SFSafariViewController,它看起来很有希望,但我试图在调用 URL 时设置 Authorization 标头。我已经知道用户令牌,但需要将其设置为授权标头。
所以流程是这样的:
User log in inside App -> get token -> set this token as Authorization header -> call my web app url
这个控制器可以做到吗?
【问题讨论】:
-
@Jeff,您浏览的网站是否由您控制?如果是,那么您应该能够使用 cookie 来做到这一点? SFSafariViewController 将与 Safari 共享 cookie。另外看看这是否有帮助github.com/MrCaiWH/HHDemo/blob/…
-
嗨@TarunLalwani,(@Jeff 没有发布问题:D)。是的,该网站在我的控制之下,是的,我可以使用 cookie 来做到这一点。但是,我记得你不能用 SFSafariViewController 中的代码设置你自己的 cookie。我知道它可以与 Safari 共享 cookie 存储,但我不想先用 Safari 登录,而是在我的应用程序中......
-
您可以导航到 SFSafariViewController 中设置 cookie 本身的 url?既然你控制了网站,那么创建这样的 url 应该仍然是可能的?
-
因此,如果我理解正确,您建议我在网站上创建新端点,将用户名和密码放入 url 中,如果正确设置 cookie。在按钮上,我首先打开这个端点,然后在设置 cookie 时打开原始端点?我怎么知道什么时候需要调用原始站点?你有没有一个接一个地调用一个站点的例子...
-
所以你将重定向到第一个 url 本身,它应该检查是否设置了 cookie,如果没有,它会重定向到登录,用户登录并成功登录后,你重定向回现在可以工作的第一个 url .下次您来时,Safari 将存储您的 cookie,因此在 cookie 有效之前不会显示登录页面。如果您需要在标头中设置令牌,您将使用
axios中间件自动将身份验证标头添加到请求中。所以最终它都可以用网络本身来处理。您需要从应用程序传达的任何信息都可以作为查询参数转到特殊 url
标签: token jwt request-headers sfsafariviewcontroller