代码之家  ›  专栏  ›  技术社区  ›  niko craft

我可以在服务器上存储oauth client\u secret而不是从前端客户端发送它,这样每个人都可以看到它吗?

  •  0
  • niko craft  · 技术社区  · 7 年前

    我正在构建一个将使用api的客户端。为此使用Laravel和vuejs。后端是它自己的应用程序,前端客户端是它自己的应用程序,将在vuejs上运行。

                form: {
                    'grant_type' : 'password',
                    'username': 'student@gmail.com',
                    'password': 'pass1234',
                    'provider': 'student',
                    'client_id': "2",
                    'client_secret' : 'fXz4bILqz5CnDjFCvXpw7RZWLgWXxsTa0LN1'
                }
    

    像这样把秘密藏在客户机里有多聪明或危险?现在每个人都能看到了,他们能用这种方式吗?如果它很危险或者不被推荐,其他人怎么做?如果您没有从客户机发送oauth客户机\u机密,那么您将它保存在哪里?

    顺便说一句,如果有人与建设经验api:s是不知道为什么我在这里提到提供者,因为我使用多身份验证passport,所以我可以用不同的提供者验证不同类型的用户。但我的问题是,在前端javascript中存储客户机机密的安全性?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Max    7 年前

    这是个坏主意,你不应该在客户端有客户机密,


    使用 implicit grant .


    从登录控制器对auth/token进行内部调用。类似于这个解决方案中的寄存器 here 因此,您将向登录控制器发送用户名/密码,登录控制器将进行内部调用以获取令牌。

    推荐文章