Laravel + rocketchat


#1

Hi,
I want to log in from laravel app into rocket chat. As I have no idea what I am doing came here to ask.

So far I use noisim/rocket-chat package for laravel to play with rocketchat rest api.

Result is this, but I am stuck for now. Help please :slight_smile:

Edit: Can this be used with laravel?

Btw, I enabled Iframe option so my login now does not show.

Update:
Looking into example iframe auth I made some little progress. That is, I have this code and result.

Routes:

Route::get('loginrc', 'LoginController@loginrc');
Route::post('sso', 'UserController@sso');

loginrc View:

@extends('layouts.app')
@section('content')
@if(!empty($rcuser_id))

<script>
			window.parent.postMessage({
				event: 'login-with-token',
				loginToken: '{{ $rcuser_authToken }}'
			}, 'http://localhost:3000'); // rocket.chat's URL
</script>
@endif
<form method="post" action="sso">
@csrf
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="submit" />
</form>
@endsection 

Controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LoginController extends Controller
{
    public function loginrc()
    {
	    return view('loginrc');
    }
}

User Controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Noisim\RocketChat\Facades\User as RCUser;

class UserController extends Controller
{
    public function sso(Request $request)
    {
	    $rcuser = new RCUser;
	    $rcuser = RCUser::setUsername($request->username);
	    $rcuser = RCUser::setPassword($request->password);
	    $rcuser->login();
   	    $rcuser_id = $rcuser->id();
    $rcuser_authToken = $rcuser->authToken();

    return view('loginrc')->with('rcuser_id', $rcuser_id)->with('rcuser_authToken', $rcuser_authToken);
	
	
    }
}