PHPackages                             jgrancell/seat-discord-connector - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. jgrancell/seat-discord-connector

ActiveSeat-plugin[Authentication &amp; Authorization](/categories/authentication)

jgrancell/seat-discord-connector
================================

A SeAT plugin which maintain user access on a Discord Guild based on defined pattern.

5.0.1(4y ago)036GPL-3.0-or-laterPHP

Since Jun 3Pushed 4y agoCompare

[ Source](https://github.com/jgrancell/seat-discord-connector)[ Packagist](https://packagist.org/packages/jgrancell/seat-discord-connector)[ RSS](/packages/jgrancell-seat-discord-connector/feed)WikiDiscussions 5.0.x Synced yesterday

READMEChangelogDependencies (3)Versions (40)Used By (0)

Seat Discord Connector
======================

[](#seat-discord-connector)

A [SeAT](https://github.com/eveseat/seat) plugin which maintain user access on a Discord Guild based on defined pattern.

[![Latest Unstable Version](https://camo.githubusercontent.com/a52e374cd76c50a18a15a7957110d855ab4c4a1dbf8635f67a1f8fc3aa7c6342/68747470733a2f2f706f7365722e707567782e6f72672f7761726c6f662f736561742d646973636f72642d636f6e6e6563746f722f762f756e737461626c65)](https://packagist.org/packages/warlof/seat-discord-connector)[![Latest Stable Version](https://camo.githubusercontent.com/2fe6312e21fd020ea1959ec261b7a1da3731913ffcfe1ece8eb06b52856abe95/68747470733a2f2f706f7365722e707567782e6f72672f7761726c6f662f736561742d646973636f72642d636f6e6e6563746f722f762f737461626c65)](https://packagist.org/packages/warlof/seat-discord-connector)[![Maintainability](https://camo.githubusercontent.com/2ff2cc59debbbdf582adf1779a8862cbbe4969a01c8432a786b87e8d8372ad04/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f30346532343961343730346538393561303866612f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/warlof/seat-discord-connector/maintainability)[![License](https://camo.githubusercontent.com/00fdf206edf81cb09c223e43973d103a7be927fc9aa1e01a4ef2064b4bf09210/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c76332d626c75652e7376673f7374796c653d666c61742d737175617265)](https://raw.githubusercontent.com/warlof/seat-discord-connector/master/LICENSE)

Setup
-----

[](#setup)

### Create Application

[](#create-application)

- Go to the [following url](https://discordapp.com/developers/applications/me/create) in order to create an application and retrieve bot token.
- Give it a name and suitable description; so user will be able to know what it is related to later.
- Click on the `Add Redirect` button twice and seed spawned field with the address bellow :
    - {seat-public-url}/seat-connector/registration/discord/callback
    - {seat-public-url}/seat-connector/settings/discord/callback
- Once done, click on the `Create app` at the bottom of the form

> **NOTE**
>
> For example, if you have SeAT available on `seat.example.com`, the callbacks will be
>
> - `https://seat.example.com/seat-connector/registration/discord/callback`
> - `https://seat.example.com/seat-connector/settings/discord/callback`
>
> But, if you're accessing SeAT using `example.com/seat`, the callbacks will become
>
> - `https://example.com/seat/seat-connector/registration/discord/callback`
> - `https://example.com/seat/seat-connector/settings/discord/callback`

### Retrieving Credentials

[](#retrieving-credentials)

Once your application has been created, we will need to retrieve credentials which will be used later in order to setup the connector into SeAT.

Go on the [following url](https://discordapp.com/developers/applications/me) and click on the box which is matching to the previously created application.

Take a note of the following information available in the upper top section :

- `Client ID` which is a displayed number
- `Client Secret` which is a strange text (hit on `click here to reveal` link)

Go at the footer section called `Bot` and check `Require OAuth2 access code` then confirm change using `Register modification` button at the bottom of the page. Finally, retrieve the bot token by clicking on the `Click here to reveal` link.

### Install Package

[](#install-package)

Since SeAT 3.0 - it's become super easy to install package. Just require `warlof/seat-discord-connector`, publish vendor and run migrations scripts :)

- Firstly, run the following command `composer require warlof/seat-discord-connector`
- Finally, run migrations scripts with `php artisan migrate`

Don't forget to restart `supervisor` with `service supervisor restart` ;)

> **IMPORTANT**
>
> All upper command have to be run using the SeAT instance user `www-data`, `seat` or whatever you've done with your installation. They need to be run at root SeAT directory which used to be `/var/www/seat`

### Setup Package

[](#setup-package)

Authenticate yourself using admin user on your SeAT instance. If all upper statements have been executed properly, you'll seed a new section into the sidebar called `Connector`.

Open it, then go into `Settings` and fill the form using collected information at the beginning of this Walkthrough.

Confirm using the `Update` button which will redirect you to Discord SSO.

In the list, select the server where the SeAT Bot have to be install, leave permissions as it and click on `Authorize` button.

[![discord setup](./docs/img/connector-setup.png)](./docs/img/connector-setup.png)

*My apologies for all that french stuff, but Discord SSO is using browser settings to show content. Despite of the language, content should be similar in all countries.*

Once you've been redirected back to SeAT, you can select `Discord` and hit the `Update Sets` green button which will seed SeAT with Roles available on Discord.

### Setup Access

[](#setup-access)

To build the mapping between SeAT and Discord, go into `Connector > Access Management`. In case you're seeing no roles in the form, go into `Connector > Settings` and hit the `Update Discord Sets` button.

In **Discord Connector**, there are 6 kind of mapping called `Filter`. Their scope are explained in the table bellow.

FilterDescription**User**This filter is applied to specific user group (meaning all linked characters)**Role**This filter is applied to all members of specific SeAT role (ACL)**Corporation**This filter is applied to all user with at least one character inside a specific corporation**Title**This filter is applied to all user with at least one character owning a specific corporation title**Alliance**This filter is applied to all user with at least one character inside a specific alliance**Public**This filter is applied to all userTo create a filter, simply fill the form available on the left accordingly to your needs. Then, hit the `Add` button. At all time, you're able to check which filter are set in the table available on the right side. You can also drop mapping using the red `Remove` button near each mapping line.

Linking Account and Getting Invitation
--------------------------------------

[](#linking-account-and-getting-invitation)

As user, you will see a section called `Connector` on the sidebar. Open it and click on `Join Server`.

This will redirect your to Discord SSO with a simple form informing you that the bot will be able to collect basic information (like your Discord Unique ID and Nickname), and granted to invite you on the attached Discord Server.

Simply confirm using the `Authorize` button which will redirect you to the SeAT homepage with a green confirmation box.

[![discord link](./docs/img/connector-join.png)](./docs/img/connector-join.png)

You'll be invited automatically to the Discord Server and attached channels.

Upgrade
-------

[](#upgrade)

If you're coming from a version prior to 4.x, you may want to convert your data into the new connector structure. To do so, run the command `seat-connector:convert:discord` - it will assist you in this process.

**Callback URL have been changed, this mean you'll have to update your Discord Application.**

Known issues
------------

[](#known-issues)

Here is a quick list of known issues (and their solution if applicable). Purpose is to assist you in troubleshooting and lead to a resolution path.

ProblemSolutionMy job `MemberOrchestrator` is failing with the message `Client error: PATCH https://discordapp.com/api/v6/guilds/302770933452636161/members/353886200135942144 resulted in a 403 FORBIDDEN`Ensure the bot role is at top level of your roles list (use drag and drop to sort them)

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 93.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~28 days

Recently: every ~86 days

Total

39

Last Release

1814d ago

Major Versions

3.3.x-dev → 4.0.02019-09-08

4.0.x-dev → 5.0.0-rc12020-06-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/a2cc07c47d31e0fa99afaad4a183341b78fca5d392ff605c1d149c6159874c46?d=identicon)[jgrancell](/maintainers/jgrancell)

---

Top Contributors

[![warlof](https://avatars.githubusercontent.com/u/648753?v=4)](https://github.com/warlof "warlof (185 commits)")[![wfjsw](https://avatars.githubusercontent.com/u/2220320?v=4)](https://github.com/wfjsw "wfjsw (7 commits)")[![JHXSMatthew](https://avatars.githubusercontent.com/u/11565658?v=4)](https://github.com/JHXSMatthew "JHXSMatthew (2 commits)")[![jgrancell](https://avatars.githubusercontent.com/u/6320811?v=4)](https://github.com/jgrancell "jgrancell (1 commits)")[![tankbusta](https://avatars.githubusercontent.com/u/592749?v=4)](https://github.com/tankbusta "tankbusta (1 commits)")[![xcrf](https://avatars.githubusercontent.com/u/8524371?v=4)](https://github.com/xcrf "xcrf (1 commits)")

### Embed Badge

![Health badge](/badges/jgrancell-seat-discord-connector/health.svg)

```
[![Health](https://phpackages.com/badges/jgrancell-seat-discord-connector/health.svg)](https://phpackages.com/packages/jgrancell-seat-discord-connector)
```

###  Alternatives

[namshi/jose

JSON Object Signing and Encryption library for PHP.

1.8k99.6M101](/packages/namshi-jose)[league/oauth1-client

OAuth 1.0 Client Library

99698.8M106](/packages/league-oauth1-client)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[league/oauth2-google

Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client

41721.2M118](/packages/league-oauth2-google)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)[beatswitch/lock

A flexible, driver based Acl package for PHP 5.4+

870304.7k2](/packages/beatswitch-lock)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
