【问题标题】:Laravel 5.3 authentication from other API, without database来自其他 API 的 Laravel 5.3 身份验证,无需数据库
【发布时间】:2017-03-03 17:39:23
【问题描述】:

在我的 laravel5.3 应用程序中,我想验证来自其他来源的用户,即我这边没有数据库。登录尝试后,我期望其他来源的 JSON 响应。谁能解释我该怎么做???谢谢!

【问题讨论】:

    标签: php laravel laravel-5 oauth


    【解决方案1】:

    为此,您应该有一些关于您要在示例中使用的外部 API 的信息,最重要的信息是:“如何加密该服务器中的用户密码?”,您只需要获取从前端传递的凭据,然后在后端向外部 API 请求用户,假设您正在使用 guzzle,您使用 guzzle 请求资源/users/<username>,该服务将提供来自 API 的所有数据如果用户存在,否则将找不到响应或类似的东西,使用此数据,您可以使用与外部服务器相同的加密技术加密密码,并使用Hash::check($value, $hashedValue)方法匹配密码,如果一切都很好,那么接下来你可以做的就是使用 Guard 登录用户,也许你需要创建一个自定义 Guard 以便将凭据存储在 cookie 或会话变量中,但如果你使用无状态身份验证通过智威汤逊,更容易,当你比较存储在外部 API 中的密码,如果返回 true,只需创建令牌并返回它。考虑在您的应用程序中使用 JWT 来验证您的服务的用户,更容易并且更适合您的情况,希望您用这个答案解决,最好! ;)

    【讨论】:

      【解决方案2】:

      就像您在任何其他网站上进行的普通 AJAX 调用一样: 例如:

      $('#selector').click(function(){
      
              var user-id=$('#user').val();
              var password=$('#password').val();
              $.getJSON('/authenticate-url/'+user+'/'+password, function(result) {
                 if(result.status == true)
                    alert 'login success';
                 else
                    alert 'Not successfull';
      
              });
              });
      

      【讨论】:

      • 对不起,也许我无法解释我想要什么,但我知道如何调用 API,我想通过 AJAX 响应在我的应用程序中登录用户,但我身边没有数据库.. .. Ajax 调用给我用户登录信息的响应,例如 {"user":"test","login":"true"}
      • 响应后我必须将用户登录到我的 laravel 应用程序,但我真的不明白我该怎么做
      • 好的,那么你想在哪里调用这个 api ,在右边的视图中?
      • 不管我想打电话到哪里......我不知道如何使用 Auth::login() 和 JSON 响应参数
      • 如果数据库不在您身边,为什么要考虑 Auth 登录?
      猜你喜欢
      • 2017-02-23
      • 2017-05-25
      • 2017-05-13
      • 2012-04-24
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      相关资源
      最近更新 更多