3

如何使用 F# 和 ASP.NET 启用 CORS。我正在尝试使用 Google 对用户进行身份验证,但在浏览器控制台中出现以下错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“ http://localhost:8080 ”。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

一个可重现的例子在这里https://github.com/sashan/safe-google-auth

它使用 F# 和 SAFE 框架,因此如果您想尝试重现此设置,则需要该设置。

您还需要使用 Google+ API ( https://console.cloud.google.com/apis/library/plus.googleapis.com )设置客户端 ID 和密码

完成后将其添加到您的环境中:

重击:

export GOOGLE_ID="client id"
export GOOGLE_SECRET="client secret"

Windows Powershell:

$Env:GOOLGE_ID="client id"
$Env:GOOGLE_SECRET="client secret"

要构建它,请克隆 repo 并运行

fake build --target run

然后单击Auth with Google打开浏览器控制台窗口的按钮以查看错误。

4

1 回答 1

2

在你的Server.fs你不调用你的configure_cors方法

let app google_id google_secret = 
    application {
        url ("http://0.0.0.0:" + port.ToString() + "/")
        use_router webApp
        memory_cache
        use_static publicPath
        service_config configureSerialization
        use_gzip
        use_google_oauth google_id google_secret "/oauth_callback_google" []
        //use_cors "localhost:8080" configure_cors
        configure_cors // Add this line to your program

}
于 2018-09-12T12:42:04.860 回答