问题标签 [safe-stack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
249 浏览

oauth - 具有 github 授权的安全堆栈

我试图将我的整个应用程序隐藏在身份验证后面(我将在此工作时处理授权),现在我希望每个 url 都需要 github 登录。我没有打开 github 登录页面。

我尝试将SAFE-stack 模板"Using OAuth with Saturn"结合​​起来,但我没有得到 github 登录页面(我只在遵循 Saturn 指南时得到),我只是得到了正常的待办事项页面。如果我单击添加按钮,服务器会打印

并且该项目不会添加到待办事项列表中。

除了身份验证位之外,我已经尝试删除所有内容,并且与干净的安全模板相比,我所做的唯一更改是

  1. dotnet paket add Saturn.Extensions.Authorization --project src/Server/Server.fsproj
  2. 手动降级两个依赖项paket.lock,否则会产生错误:Microsoft.AspNetCore.Authentication.Googleto(3.1.11)Microsoft.AspNetCore.Authentication.OpenIdConnectto(3.1.11)
  3. app将值更改Server/Server.fs为以下(我为此问题创建了一个新的 github auth 应用程序):

我的 gitHub 应用配置认证回调 url:http://localhost:8080/signin-github

0 投票
0 回答
44 浏览

docker - 在 docker 容器中部署时,身份验证重定向 uri 使用 http 而不是 https

我正在尝试将具有 AzureAD 身份验证的 SAFE-stack 应用程序部署到 docker 内的 Azure。dotnet fake run -t azure使用直接部署到 azure ( )的构建脚本进行部署时,我得到了身份验证。但是当我通过 GitHub 操作将应用程序部署到 docker 容器中时,身份验证不起作用。

问题出redirect_uri在请求中,而http不是https . 我认为问题可能出在中间件上,但我似乎无法修复它。我似乎有应该工作的正确配置(我也知道顺序很重要,但我认为它也是正确的顺序)。

这是我的 Server.fs:

我也试过:

  • force_sslapp价值。我已经尝试过user_routerapp_config
  • 我试图将 url 更改为 https:url "https://0.0.0.0:8085" 但应用程序因这些尝试而崩溃。
0 投票
1 回答
62 浏览

f# - F# SAFE 如何处理消息 DU 变种的增长?

在 F# SAFE 堆栈中有一个 DU 类型,它定义了在服务器和客户端之间流动的所有类型的消息。在示例应用程序中,其中有 <10 个,我查看了提供的示例 - 所有这些示例都没有很多可能的类型。但是如果应用不小怎么办——DU中会有数百种类型;这将变得难以维护。所以我决定把这个类型划分为子类型,并将逻辑放在相应的文件中。

这是我的简化类型:

登录状态在另一个文件中定义:

登录模块与登录一起使用:

请注意,它返回Model * Cmd<LoginState>.

现在我需要修复我的更新功能:

这里的问题是我Cmd<LoginState>从登录模块获取并需要以 Cmd<Msg2>某种方式将其转换为。 在此处输入图像描述 所以我要么需要创建新Msg2类型,要么将 DU 变体转换LoginMsg of LoginStateMsg2. 我不明白如何从中获取LogInResult数据Cmd<LoginState>

我怎样才能解决这个问题?大型项目中如何解决消息类型多的问题?

0 投票
1 回答
100 浏览

azure - 使用 Azure AD B2C 用户流(或自定义策略)进行 SAFE Stack 身份验证——有人解决了这个问题吗?

直截了当但开放式的问题:是否有人成功地将 SAFE Stack 应用程序连接到 Azure AD B2C,以便来宾用户(在 B2C 租户中)可以通过定义的用户流或自定义策略登录?

可以让我结束我的方法循环的具体问题:知道为什么使用 Microsoft.Identity.Web 处理身份验证的应用程序会遇到这个记录不充分的错误,以及如何解决它?--

“ID 为 <<Ugly_GUID>> 的应用程序无法获取 ID 令牌,因为请求中未提供 openid 范围或应用程序未获得授权。”

迄今为止我失败的努力的详细信息: 通过一些修改,我能够按照 Ryan Palmer 的两部分系列为我的 SAFE Stack(v3,.NET 5)应用程序强制执行 Azure AD 身份验证:

这会导致我的真实Azure 登录授予我对应用程序的访问权限。但目标是启用用户流(或自定义策略,无论是否有效),以便在我的 Azure AD B2C 租户中获得授权的用户可以进行身份​​验证和使用该应用程序。使用 appsettings.json 中的以下设置(以及许多尝试的变体),对应用 URL 的调用成功地重定向到登录用户流:

“b2clogin” URI(与 Ryan Palmer 的原始版本中的 login.microsoftonline.com 相比)和 SignUpSignInPolicyId 成功调用了所需的用户流,并且我能够登录(和/或注册)保存在我的 Azure 中的虚拟用户广告 B2C 资源。但是当流程重定向到我的应用程序时,我得到上面列出的“openid 范围”错误。

该错误发生在 localhost 和部署到 Azure Web 应用实例的版本上,并且发生在 Firefox、Chrome 和 Edge 中。

其他 Azure AD B2C 详细信息:

  • 我已经注册了一个 Web 应用,其返回 URL 为 https://<app_name>.azurewebsites.net/api/login-callback 和 https://localhost:8080/api/login-callback
  • “访问令牌”和“ID 令牌”权限已在 B2C 注册应用的身份验证部分授予。
  • 注册的应用程序有一个秘密(不是证书),但我没有在任何地方使用过这个值,我还没有看到任何文档表明它会在哪里使用。
  • 在没有身份验证的情况下,SAFE Stack 应用程序在 localhost 和 Azure 上按预期工作。
0 投票
2 回答
175 浏览

f# - F# Feliz.Bulma 下拉/组合框

我的问题很简单 - 如何在 SAFE 项目中创建组合框(下拉菜单)(使用 Feliz.Bulma)并以编程方式填充它。

文档中没有这样的组件。是我发现的唯一示例(Fulma),无法将其合并到我的项目中。

0 投票
1 回答
22 浏览

f# - Fable.Reactstrap 未在客户端 fsproj SATE 堆栈上定义

我正在尝试在SAFE.TemplateFable.Reactstrap的 Client 项目上使用。我已添加到 Nuget、Paket 和 NPM,但在执行. 这是代码的错误:Fable.Reactstraperror FSHARP: The namespace 'Reactstrap' is not defineddotnet run

真正的代码可以在我的 github 的 repo上找到。Fable.Reactstrap本身已添加到项目的依赖项中并添加到paket.references.

如何Fable.Reactstrap在我的项目中解决此错误和用户?

0 投票
0 回答
35 浏览

f# - 如何在 SAFE 堆栈中为 Thoth.Json 编写编码器/解码器?

我正在使用 SAFE 堆栈构建一个应用程序,并且我的模型中有一个 System.Uri。当我运行我的代码时,我在控制台中收到一个错误“无法为 System.Uri 生成自动编码器......”
到目前为止,我的谷歌搜索已经让我到了这里

然后在我的 App.fs 中添加

我想我已经了解如何创建编码器,但我不知道如何编写解码器部分。
我显然可以用字符串替换我的 System.Uri 字段,但这感觉不是正确的解决方案。