在 SFSafariViewController 中设置请求授权标头

Mar*_*vec 5 token request-headers jwt sfsafariviewcontroller

我有一个具有用户名和密码的应用程序,以便用户登录到该应用程序。一些(不太重要的)功能仍然是网页。

但为了用户友好,用户已经登录后再次登录很烦人。

我正在查看 SFSafariViewController,它看起来很有前途,但我试图在调用 URL 时设置授权标头。我已经知道用户令牌,但需要将其设置为授权标头。

所以流程是:

User log in inside App -> get token -> set this token as Authorization header -> call my web app url
Run Code Online (Sandbox Code Playgroud)

这个控制器可以实现吗?

Tar*_*ani 1

正如所讨论的,你应该做什么

当您从应用程序登录时,您会收到一个令牌。login接下来,您应该为,例如 ,创建一个额外的端点loginWithToken。相同的格式可能类似于

https://example.com/loginWithToken?token=xyz&returnURL=def
Run Code Online (Sandbox Code Playgroud)

您将在您的应用程序中导航此 URL,然后它将执行与页面相同的操作login。将此令牌存储在cookies或中localStorage。完成后,页面应重定向到returnURL

这样,应用程序将无需重新登录SFSafariViewController

  • 这绝对是一个安全问题。用户可能会在页面加载之前点击“共享”按钮,并无意中在社交媒体上共享 URL(包含其令牌)。 (6认同)
  • 正确,这是以其他用户身份登录的缓解措施。但是,JWT 可能有其他 PII 编码,例如姓名或电子邮件。使用这种方法必须非常小心。 (2认同)