Code Monkey home page Code Monkey logo

isango's Introduction

Isango

MyBB Simple Social Login / Registration Plugin Using OAuth2


Compatibility

  • MyBB 1.8.x
  • PHP 7.1+

Implemented Features

  • The plugin can be functionally isolated with a master switch without losing settings, customization and without affecting required running background processes.
  • Administrators can choose to restrict registering new accounts while keeping only login ability.
  • Several modes of inputs are available: Big buttons with text, Small buttons with icon only and a select dropdown. All modes are rendered and available globally.
  • Administrators can choose to allow only one connection per service for a member.
  • Users can login / register through several social gateways in a click.
  • Currently supported: Amazon, Discord, Facebook, Github, Google, Imgur, LinkedIn, Microsoft, Spotify, Twitch, WordPress, Yahoo & Yandex. New services will be added to the plugin over time; however (advanced) users can easily implement other services by creating configuration .ini of the expected service in required pattern (no programming needed). Once a configuration file is created and placed inside inc/plugins/isango folder only re-anabling the plugin will activate the new service with the plugin.
  • Ability to send automated welcome private message to the newly registered user intimating the random password used to register the account.
  • Administrators can choose the usergroup from ACP Plugin Settings under which the new users will be registered and placed, defaults to Registered (gid 2).
  • Users can add the authentication connections from user control panel which will help them logging in using the already registered services.
  • Secure cross email match with user registration table.
  • This plugin, by design, doesn't store access token obtained from providers so that in case of a database compromise your social accounts still remain secure.

Planned features so far

  • Optional ability to allow new users to input desired username while registering with Isango. Currently the plugin attempts to decide a suitable username based on available data received from the used service.
  • Adding more services to the plugin

Installation

  • Exactly same like any other plugins. Users need to upload the files inside upload folder of the package maintaining the already made structure using any FTP / WebDav and install / activate the plugin from ACP.
  • Users need to create App for the website at the service provider's developer site to obtain App ID / Secret which are required to input through MyBB ACP Plugin settings. For detail guidelines on creating App for individual service providers please refer Wiki.

The callback url for all gateways is: http(s)://{$your_site}/member.php?action=login&gateway={$gateway}

For example, if your site is forums.com and you are making app for google, the redirect url you have to set is: https://forums.com/member.php?action=login&gateway=google

For those providers who don't allow fragmented callback url, just set: https://forums.com/member.php ...and it will all work good.

External Dependency:

No external OAuth library has been used in this plugin. It has been implemented complying minimum possible OAuth2 requirements.

isango's People

Contributors

effone avatar eldenroot avatar lairdshaw avatar riisdev avatar stampylongr avatar yuliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

isango's Issues

Allow connection without email

Allow users to connect services that doesn't return email address. Enable users to login using ID only in that case.

Note: Need to evaluate if registration is possible without email address (and force user to provide email after registration?)

Duplicate language entry `auth_success_registered_redirect`

Front-end English language file:

$l['auth_success_registered_redirect'] = "Welcome. Successfully logged in using '{1}'.";
$l['auth_success_registered_redirect'] = "The profile from '{1}' which you are trying to connect is already registered with your account.";

The second should be auth_already_connected_redirect.

Disable login with non-connected services.

Hi. I would like users to login using only connected services. That is, for users to be able to login use a service they would need to connect from the UCP first.

A option to do this would be awesome.

Multiple accounts check

When I login via Discord (add a connection in UCP panel) and then I log out and log in via a second accoutn and add a Discord account (same one) -> log out -> log in via Discord -> you are not logged for the right account, you are connected with an account which is not asscoaited with this email.

It happens only with Discord.

Discord login concerns

Hello I have the following problem when I want to login with discord thank you in advance for your help

invalid oauth2 redirect_uri

Duplicate `add_breadcrumb` in UserCP

The following code has outputted a nav link to UserCP in usercp.php:

add_breadcrumb($lang->nav_usercp, "usercp.php");

Isango has done it again in isango_connections(). I don't know if it's required, but the navigation will show two identical links to UserCP.

Verified email state

As reported by @Shade-
Some gateways can return unverified emails. In that case make use of verification state returned alongwith.

Settings display order irregularity

Fails to set / update display order of settings while rebuilding the settings as per available gates. Resulting gaps between display order serial numbering and constant increment of order number from last available.

No option to add Terms/Privacy links

As per googles developer policies I am trying to configure the plugin to display TERMS and Conditions/Privacy Policy links.

The plugin does not give any customization for such thing.

Possible for such feature to be implemented in next update?

SCSS and MAP files for CSS compilation

It seems that SCSS and MAP are for generating the actual CSS file. If so, it might not be included in release build.

I'm not familiar with how to use those SCSS and MAP files. Could anyone write a little more on development of Isango with an appropriate way of handling the CSS file on the README page or in the Wiki section?

Thanks.

Change username

Maybe would be nice to add this option to add an ability to change an username after registration via 3rd party services. It could be in UCP -> Connections or during registration, not sure what would be the best place.

Native Account e-mail Match

  • Optionally restrict matching returned email with native account data to enhance security.
  • Authenticate users using both ID and email, not either of the two.

Make use of usercp_nav_connections template

... get rid of hardcoded declaration.
Also use variable (or practice other ways) in place of targetting closing table tag to extend support to any kind (tableless) of theme.

2.0.0 release ETA

@effone - I cannot reach you on Discord, so I will ask here - can we focus on 1.2.0 release and finish this plugin soon?

I am here to help you, let me know and I am free for testing :)

Focus:

  • Connection Delete Confirmation #69
  • Check for inactive gates as per available services and indicate in listing
  • Isango Buttons: Structural Improvement #22, #47, #51
  • Possible problem with other required fields #43
  • Registration IP not captured #41
  • Send a PM to newly registered users #7
  • Disable registration using Isango (only login) #44, #45
  • SCSS and MAP files for CSS compilation #37
  • Bump plugin version in the next release #36
  • Settings display order irregularity #58
  • Purge connections while deleting user #60
  • Allow Single Connection Per Service #70
  • Random Password length as per settings #67
  • Bump Plugin Version + Format Code #36
  • Native Account e-mail Match #31
  • Complete basic repo structure #17

Disable on registration.

Hi. I would like users to login using connected services but not register.

A option to do this would be awesome.

Possible problem with other required fields

I've noticed that if some fields of profile are required but cannot be provided by gateway it will fail to register new account. Also fields like gender if are hidden on gateway it will fail to register new account. Maybe consider allowing then people to fill missing fields on some kind of "stripped" registration form or just simply load default values provided and allow account to be created.

Simplify info configs

Simplify the configuration file to declare info related settings to be simple strings that can be used as key in plugin function.

This will make it possible to get rid of eval() as well as improve readability of the .ini files.

Issues with discord registration

When attempting to sign up using discord I'm given the following error message:

"Failed to receive token data from 'Discord' (status code: 0). Please contact Administrator."

I believe i've done the setup correctly as I have both of the 0auth links on my discord developer panel and I have the 2 needed ID's in my forum ACP menu.

Isango Buttons: Structural Improvement

Templatize Isango buttons for better control on placement and designing...

  • Create settings for users to choose button group type
  • Create 3 sets of action triggers (Buttons / Select)
  • Globalize all structures

Isango discord login wont transfer profile picture/name

Hi,

The plugin Isango is great with the discord registration feature only the problem is when i try to register on MYBB with the discord login it wont transfer the profile picture and name used on ur discord profile. It only transfer ur email name as username thats a privacy issue the discord login feature should transfer the profile name and profile picture from ur discord account

Different size of buttons

Make a setting to choose between 2 size of buttons - icons only and icon with text (already done).

Random Password Length

The generated random password doesn't adhere min and max password lengths set by user and may cause issue.

WordPress Support

Add support of login / register using WordPress official credential.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.