Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Laravel登录a";遗留系统“;?_Php_Laravel_Authentication_Migrating - Fatal编程技术网

Php 使用Laravel登录a";遗留系统“;?

Php 使用Laravel登录a";遗留系统“;?,php,laravel,authentication,migrating,Php,Laravel,Authentication,Migrating,我需要将遗留系统迁移到Laravel。 我使用的是PHP5.6,我们有一个登录系统,使用会话和cookies来个性化一些用户资料。 嗯,我想迁移我的系统的一些部分,我认为第一个部分是登录,我认为我需要在Laravel和旧的PHP之间共享登录,但是什么是更好的方法呢?用户密码没有进入bcrypt加密,我需要将“登录”信息共享到旧系统页面,新页面迁移到Laravel 谢谢创建一个新的服务提供商,如LegacyHashProvider namespace App\Providers; use App

我需要将遗留系统迁移到Laravel。 我使用的是PHP5.6,我们有一个登录系统,使用会话和cookies来个性化一些用户资料。 嗯,我想迁移我的系统的一些部分,我认为第一个部分是登录,我认为我需要在Laravel和旧的PHP之间共享登录,但是什么是更好的方法呢?用户密码没有进入bcrypt加密,我需要将“登录”信息共享到旧系统页面,新页面迁移到Laravel


谢谢

创建一个新的服务提供商,如
LegacyHashProvider

namespace App\Providers;

use App\Services\LegacyHasher;
use Illuminate\Support\ServiceProvider;

class LegacyHashProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->singleton('hash', function ($app) {
            return new LegacyHasher($app);
        });
    }

    public function provides()
    {
        return ['hash'];
    }
}
创建一个类
LegacyHasher
,该类实现
illumb\Contracts\Hashing\Hasher
接口。写下你的方法(覆盖),例如


导航到config/app.php并将
illumb\Hashing\HashServiceProvider::class
替换为
app\Providers\LegacyHashProvider
,它应该可以使用您的旧登录系统了

那么,我如何才能共享“登录”,例如:我在传统端有一个搜索产品页面,但当我的客户点击一个产品时,他们会发送到Laravel端的一个产品页面,这两个页面都是guy需要登录的,我如何共享它?@Hermus假设您使用远程共享会话数据库来跟踪两个系统之间的用户交互。当用户从任何一方登录时,您会放置键/值对,例如
user:some-hashed-session-value-for-user-1:new
user:some-hashed-session-value-for-user-1:legacy
。Laravel端将包括
验证
中间件和检查遗留密钥的存在-遗留系统将检查两个密钥的存在。每当用户从任何一方注销时,您都会删除这两个密钥。这就像使用一个gmail帐户来提供多个google服务一样。@Hermus有很多细节可以涵盖所有场景,但这只是概念。您可以在两个应用程序的用户会话中保留这些长会话值,并使用它们作为标识符发出请求。
public function make($value, array $options = [])
{
    return hash('sha512', $value); // this will be your legacy hashing system 
}