私は Laravel に最も慣れており、Q2A や OSQA などの Q&A フレームワークで Laravel を拡張したいと考えています。2つを統合するにはどうすればよいですか(例: Q2A + Laravel)?
質問する
1613 次
3 に答える
3
サブフォルダーとしてLaravelインストールでQ2Aを実行することができました。これが私がしたことです:
Question2Answer を laravel public/qa フォルダーにインストールします
セットアップ手順フォームhttp://www.question2answer.org/single-sign-on.phpに従ってください
次の関数を public/qa/qa-external/qa-external-users.php に追加します
function laravelauth() {
//modified from https://laracasts.com/discuss/channels/general-discussion/how-to-use-laravel-authuser-outside-laravel-and-pass-data-in-custom-php
require getcwd() . '/../../bootstrap/autoload.php';
$app = require_once getcwd() . '/../../bootstrap/app.php';
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$id = $app['encrypter']->decrypt($_COOKIE[$app['config']['session.cookie']]);
$app['session']->driver()->setId($id);
$app['session']->driver()->start();
if(!$app['auth']->check()) return ["is_loggedin"=>false];
$salida = $app['auth']->user()->toArray();
$salida["is_loggedin"] = true;
return($salida);
}
次に、qa_get_logged_in_user() を次のように変更します。
$r = laravelauth();
if($r["is_loggedin"]){
return array(
'userid' => $r["id"],
'publicusername' => $r["name"],
'email' => $r['email'],
'level' => QA_USER_LEVEL_BASIC //(select the level)
);
}
laravel ユーザー属性などに基づいて、ユーザー レベルを選択できます。
于 2015-05-06T01:16:32.720 に答える
0
OSQA はまったく異なる言語を使用しているため、正直に言うと、それはより困難です。Q2A は Laravel のように PHP を使用しますが、これはスタンドアロン アプリであり、それ自体が独自のフレームワークです。
ただし、Q2A にはシングル サインオンの概念があるため、Laravel でユーザーを設定している場合、ユーザーは Q2A と統合できます。詳細については、Q2A ドキュメントを参照してください。
于 2014-01-31T16:17:38.007 に答える