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