0

我正在为我的应用程序开发 Absinthe GraphQL API。我还在学习这个程序(所以请放轻松)。

我有一个 Absinthe/GraphQLMyAppWeb.schema.ex文件,用于查询和突变。我的问题是如何使用此 API 在移动和 Web 应用程序上对用户进行身份验证?

如何在我的网络应用程序中设置 cookie(httpOnly 和安全)并在单个苦艾酒 API 中访问/刷新令牌以服务于我的网站和移动应用程序。基本上我要学习的是如何基于特定平台对用户进行身份验证。

如果我的问题听起来有点令人困惑,我很乐意提供与我的问题相关的更多信息。如果有人可以解释该程序,我将不胜感激,我已经为此困扰了一段时间。

4

1 回答 1

1

我会避免使用苦艾酒提供的身份验证机制(如果有的话)。根据您使用的前端,我会使用 JSON API 身份验证。服务器上的流程如下:

  1. 为登录创建一个端点,它将接收用户和密码并返回一个刷新令牌。
  2. 创建一个端点来交换访问令牌的刷新令牌。
  3. 使用诸如监护人之类的库来生成您的刷新/访问令牌。
  4. 创建一个用于身份验证的 phoenix插件来检查您的令牌,监护人为此提供了一些内置插件。

现在在设备上你必须实现:

  1. 能够在设备上保存刷新和访问令牌。
  2. 有一个全局处理程序,用于在授权请求上注入访问令牌。
  3. 当访问令牌过期时,有一个全局处理程序。(您通常检查您的请求是否返回未经授权,那么您应该使用您的刷新令牌从服务器请求一个新的访问令牌)

这似乎是一个粗略的实现,但是我建议在实现您的系统而不是使用黑盒库时,您不知道它是如何在幕后工作的。

于 2021-10-18T08:32:06.853 回答