如何从Yesod中的书签/如何将选项添加到Yesod的Auth子网站进行身份验证

时间:2013-05-15 16:36:54

标签: haskell bookmarklet yesod

我想从书签中访问我使用Yesod 1.2制作的服务器API。我想从任何其他网站的书签中POST。服务器API具有身份验证(通过Mozilla Persona和Google ID)。这意味着:

  • 服务器必须接受来自小书签的跨源请求。
  • 服务器需要对来自小书签的API访问进行身份验证。

我根据以下内容向我的处理程序添加了OPTIONS

https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS

Allowing cross-origin requests in Yesod

但是,我注意到,即使用户从浏览器登录后,请求也会转发到Yesod应用的/auth/login(我认为这是有道理的,因为这两个是不同的域)。 Auth在子网站中处理。所以我认为OPTIONS也需要/auth/login。如何在config/routes文件中为Auth子网站添加OPTIONS?

或者,有没有更好的方法从书签中进行身份验证?

1 个答案:

答案 0 :(得分:3)

两种方法:

  1. 发送yesod-auth的pull请求以包含OPTIONS。
  2. 使用中间件来处理该请求。
  3. 我会选择(1),您将从社区中受益,并且维护起来会更容易。