Giter Club home page Giter Club logo

steam-login's Introduction

PHP Steam Login

This package enables you to easily log users in via Steam, using their OpenID service. However, this package does not require that you have the OpenID PHP module installed!

Note: The package can also easily be used with the Laravel 4 PHP Framework.

Installation

Begin by installing this package via Composer:

{
    "require": {
		"ehesp/steam-login": "~1.0.1"
	}
}

Laravel Users

If you're using the Laravel 4 PHP Framework, a service provider is available:

<?php
// app/config/app.php
'providers' => array(
	'...',
	'Ehesp\SteamLogin\Laravel\SteamLoginServiceProvider',
),
<?php
// app/config/app.php
'aliases' => array(
	'...',
	'SteamLogin' => 'Ehesp\SteamLogin\Laravel\Facades\SteamLogin',
),

You now have access to the SteamLogin facade.

Usage

Before starting, please note you're unable to redirect a user to the Steam OpenID login portal. In other words, they must be able to click the link themselves.

Standalone

Ensure your script requires the Composer autoload file: require './vendor/autoload.php'; Then, use the SteamLogin class and create a new instance of it:

<?php
// login.php
use Ehesp\SteamLogin\SteamLogin;

$login = new SteamLogin();
echo $login->url();

Once authenticated, Steam will return to your website root with attached GET parameters, which must be validated:

<?php
// index.php
use Ehesp\SteamLogin\SteamLogin;

$login = new SteamLogin();
echo $login->validate();

If everything was successful, the users Steam Community ID will be returned, or if anything went wrong an Exception will be thrown.

Laravel

You can either use blade to easily generate the login URL, or pass it through via a View Composer:

<?php
// view.blade.php
<a href="{{ SteamLogin::url() }}">Login via Steam!</a>
<?php
// app/filters.php 
App::before(function($request)
{
	View::share('url', SteamLogin::url());
});

// view.php
<a href="$url">Login via Steam!</a>

To validate the Steam Login:

<?php
// app/routes.php
Route::get('/', function()
{
	return SteamLogin::validate();
});

Changing the return URL

The return URL must be a valid URL which contains either the http or https URI scheme.

If you want your users to be sent to a specific URL/route after login, this is easily done. Simply add the URL as a parameter in the url() method:

<?php
$login->url('http://mywebsite.com/login');

As a Laravel user, you may with to set a custom Config option with this URL:

<?php
// app/config/steam.php
return array (
	'login' => 'http://mywebsite.com/login',
	// 'login' => URL::to('login'),
);

Then simply access this in the url method:

<?php
SteamLogin::url(Config::get('steam.login'));
// SteamLogin::url(URL::to('login'));

To Do

  • Add PHPUnit tests
  • Integration with other frameworks: CodeIgniter, Symfony 2

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.