【问题标题】:Validate User in PHP API via JS frontend framework (VUEJS) Concept通过 JS 前端框架 (VUEJS) 概念在 PHP API 中验证用户
【发布时间】:2018-04-04 14:28:07
【问题描述】:

我正在将一个应用程序分成 2 个独立的应用程序——PHP 和 MYSQL 将处理应用程序的 API / 服务器端,而我正在使用 VueJs 来处理前端部分。我有 2 个应用程序可以毫无问题地通信、获取和接收数据。

我只是没有掌握如何让用户通过 Vue 端登录并让 PHP 从登录用户那里获取所有数据的概念——甚至不确定 Vue 是否可以处理这种功能——Vue noob在这里。

我很难理解的一些事情:

1) 保护 PHP 端的数据是一个主要问题

2) 以安全的方式跨 2 个应用发送登录凭据

任何想法都将不胜感激...不是逐个寻找代码,只是想稍微解开我的大脑。

谢谢,

塞尔吉奥

【问题讨论】:

    标签: php mysql authentication vue.js


    【解决方案1】:

    一种常见的方法是使用JSON Web Tokens (JWT)。您将在发布的网站上找到一个 PHP 和 JS 库来使用 JWT。

    概念是这样的:

    1. 客户端将登录凭据(用户名/密码)发送到服务器(确保在此处使用 HTTPS)
    2. 服务器验证凭据,创建 JWT 并将其发送给客户端
    3. 客户端存储 JWT 并随每个 API 请求一起发送
    4. 服务器检查 JWT 是否有效

    由于 JWT 是由服务器签名的,因此会检测到对它的更改,并且 JWT 将不再有效。

    Here 是一个使用 JWT 和 PHP 的教程

    【讨论】:

    • 感谢您的意见...对 JWT 做了一些研究,这就是我想要的。
    【解决方案2】:

    我的回答很简短,因为这个话题很大,而且你没有缩小你的问题范围。

    首先,如果我正在使用 vue 前端和 php 服务器端来开发我的应用程序。我将从 vue 发送一个带有用户名和密码的 api 帖子到 php。一旦完成,php 将已经知道谁登录了,并将发回我通常存储在 vuex 之类的 vue 商店中的用户模型(这是可选的)。如果我从应用程序内登录,就会出现这种情况。这意味着在同一台服务器上。对此的安全建议是防止 CSRF 并使用 api 中间件(这是在给出响应之前验证内容的函数,通常在所有请求或指定时调用)。您可能会使用 php 框架,它应该可以通过生成的令牌让您轻松完成此操作,该令牌在 api 调用标头中发送并由服务器和其他一些方式进行验证。

    现在,如果我正在从外部进行登录呼叫。我将使用 OAuth2 并避免通过 http 请求发送凭据,而是使用生成的客户端令牌,在 php 上验证登录后,我将发送回一个带有刷新令牌的 api 令牌,以保持与服务器的通信。现在你将不得不使用一个 api auth php 库来实现这一点,因为我提到的背后有很多东西。要了解 oauth2 的工作原理,请参阅 link

    【讨论】:

    • 我正在寻找您的第二种方法...这些应用程序将存在于不同的服务器中,并且需要以安全的方式进行通信。这是我正在构建的第一个使用 2 个不同服务器的应用程序,所以整个概念对我来说是全新的。感谢您的反馈和建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2018-07-30
    • 2015-07-07
    相关资源
    最近更新 更多