相关疑难解决方法(0)

自定义用户身份验证基于API调用的响应

描述:

我现在一直在使用Laravel进行一系列项目.在Laravel中实现用户身份验证很简单.现在,我正在处理的结构有点不同 - 我没有本地databaseusers表或表.我必须进行API调用以查询我需要的内容.


我试过了

public function postSignIn(){

    $username     = strtolower(Input::get('username'));
    $password_api = VSE::user('password',$username); // abc <-----
    $password     = Input::get('password'); // abc <-----


    if ( $password == $password_api ) {
        //Log user in
        $auth = Auth::attempt(); // Stuck here <----
    }

    if ($auth) {
      return Redirect::to('/dashboard')->with('success', 'Hi '. $username .' ! You have been successfully logged in.');
    }
    else {
      return Redirect::to('/')->with('error', 'Username/Password Wrong')->withInput(Request::except('password'))->with('username', $username);
    }
  }
Run Code Online (Sandbox Code Playgroud)

更新

shell_execVSE班上使用一个简单的命令连接到API

public static function …
Run Code Online (Sandbox Code Playgroud)

php authentication laravel laravel-5.1

7
推荐指数
1
解决办法
2102
查看次数

扩展Laravel 5.2 SessionGuard

我想扩展Laravel股票身份验证,以在利用现有功能的同时使用OAuth服务器进行用户检索和身份验证。我已经设法将扩展EloquentUserProvider为部分覆盖/扩展Illuminate\Contracts\Auth\UserProvider合同的实现。当前的实现如下所示:

class EloquentOauthServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return HcOAuthProvider;
     */
    public function boot()
    {
        Auth::provider('oauth',function($app){
            $model = $app['config']['auth.providers.oauth.model'];
            $repository = new OauthUserRepository();
            return new EloquentOauthUserProvider($app['hash'], $model, $repository);
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

auth.php配置中,我像这样更改了描述符:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'oauth',
    ],
]

'providers' => [
    'oauth' => [
        'driver' => 'oauth',
        'model' => App\Models\User::class,
    ],
]
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是可行的,我可以覆盖添加逻辑的方法。但我意识到,我还需要覆盖的一些方法SessionGuard类(loginlogout要具体),因为我要保存和检索OAuth的具体使用Laravel会话实现令牌。周围有一些建议,但它们要么不起作用(也许他们在Laravel 5.2之前就起作用了),要么需要重写 …

php authentication laravel laravel-5.2

5
推荐指数
1
解决办法
2230
查看次数

我们如何在 Laravel 中实现自定义的仅 API 身份验证

这不是一个非常需要答案的问题,但欢迎进一步的建议、答案和建议。我想与世界分享我如何解决这个问题并希望它对其他人有所帮助。

Laravel 附带了几种预先设计的身份验证解决方案,您可以使用一些 artisan 命令来启动它们。这些包括:

  • 标准用户表身份验证
  • OAuth2(通过 Laravel Passport 包)
  • 基于社交媒体的身份验证(通过 Laravel Socialite 包)

尽管所有这些都很有用,但在这个微服务时代,Laravel 并没有提供太多使用自定义 API 进行仅 API 身份验证的开箱即用引导程序。

几个月前我遇到了这个问题,我在 Google 和 Stackoverflow 上搜索了答案。我发现了有用的文章,有助于指明方向,并且这些文章被引用。我们需要付出一些努力才能理解如何将它们粘合在一起并逐步调试以解决问题。

提供答案是希望对其他人和我自己有所帮助,因为我将来必须再次做同样的事情。

假设和范围:

  • 您已经创建了自己的 API,例如https://example.com/loginhttps://example.com/logout
  • 您正在运行一个需要身份验证的网站,但不需要通过模型、表格或社交媒体进行身份验证
  • 您的 API 管理与表的交互,包括用户登录/注销
  • 您使用 Laravel Passport 插件进行 OAuth2 身份验证(感谢 @ShuvoJoseph 引起我的注意)

php authentication api laravel

3
推荐指数
1
解决办法
6940
查看次数

标签 统计

authentication ×3

laravel ×3

php ×3

api ×1

laravel-5.1 ×1

laravel-5.2 ×1