Giter Site home page Giter Site logo

eloquent-oauth-l5's People

Contributors

adamwathan avatar andrewcarteruk avatar cmgmyr avatar colindecarlo avatar drbyte avatar kronik907 avatar schmitzc avatar syphernl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eloquent-oauth-l5's Issues

Existing users not recognized

I'm currently using your package to facilitate logging in with social accounts. However, the login() function doesn't seem to recognize users that already exist in the database. This is the case when the user has previously logged in using email/password (for example with a gmail email). However, if they login later using Google, the function does not recognize the previous account, and makes a new one.

Is this normal? (If so, where exactly should I put the logic to use an existing user?).

Thanks in advance (and thanks for all your work).

API calls from the server require an appsecret_proof

This is the error i get when i get redirected back to my app.

The redirect to facebook to approve the works perfect, but when i get redirected back to my website this gets spit out at me:

Client error:GET https://graph.facebook.com/v2.4/me?access_token=EAAQalYXTmbsBAG1YokHVgUZCW6n0qwt7QKnd6D3ZAKgaJhRilpbHXmFhFgot4PvC16vABO2KU7X4pjp5vxWLjNPkJH5iogt8M5JicJ5QGHCZBHdSUGw7j9ZAQda8fG9jhZB4lY193hMMAh7zrx02FoMhmvum0GwoZD&fields=email,name,first_name,last_name,age_range,timezone` resulted in a 400 Bad Request response:
{"error":{"message":"API calls from the server require an appsecret_proof argument","type":"GraphMethodException","code" (truncated...)`

What am i missing?

Sentinel integration

Hi there
I come to you because I really wanted to use a free option for social logins with sentinel. So, if you do find interesting to proceed with this work, I can start up by giving you my current error message (bacause I'm trying to insert a Sentinel User model in eloquent-oauth.php conf:

ErrorException in SessionGuard.php line 441: Argument 1 passed to Illuminate\Auth\SessionGuard::login() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of Modules\User\Entities\Sentinel\User given, called in vendor/adamwathan/eloquent-oauth/src/Authenticator.php on line 21 and defined

@adamwathan Can you guide me?

Laravel 5.1

I'm getting an error that eloquent-oauth-l5 doesn't recommend installing Laravel 5.1. Isn't this package compatible?

Facade/exceptions in readme

According to the readme, the facade (and exceptions) point to the eloquent-oauth project rather than eloquent-oauth-l5.

Wrong state parameter handling

What is returned looks like:

/google/login?state=mWhYA2x84XXFqn54MAdJBqCEnwKbSWNG&code=4/d2YkPDB2NCddcF5u9YqZGqpaI35JGQNRnQs9ZK-fJ3A#

Seems 'state' parameter has not been handled properly because I get:

InvalidAuthorizationCodeException in SocialNorm.php line 52:
...

Update:

Actually it could be a kind of forgery attack simulation, because Google does not accept non-public return URLs and I'm obliged to 'fake' it with a public one stored in hosts file.

Nice package but can be framework agnostic. Can you do that please

Hi. I love this package but it is too tied to Laravel framework. When i look at the package dependencies i think we can move the following illuminate packages to their laravel spercific implimentation:
illuminate/auth, illuminate/session, illuminate/http and illuminate/routing. You can leave illuminate/database and illuminate/support in the main package. that way we can adapt the package in other frameworks like Slim.
thanks

ModelNotFoundException on user

If a user logs in which hasn't logged in before I'm getting a ModelNotFoundException thrown by vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php.
The UserStore for this package deals a lot with the user aspect, so perhaps it should also catch errors like these?

Installation Problem

Problem 1
- Installation request for adamwathan/eloquent-oauth-l5 ^0.5.1 -> satisfiable by adamwathan/eloquent-oauth-l5[v0.5.1].
- adamwathan/eloquent-oauth-l5 v0.5.1 requires guzzlehttp/guzzle ^6.2.1 -> satisfiable by guzzlehttp/guzzle[6.2.1, 6.2.2, 6.2.x-dev] but these conflict with your requirements or minimum-stability.

Support Laravel 5.3

changing InstallCommand line 21 to
if (starts_with(app()->version(), '5.1')) { $this->composer = app(Composer51::class); } else { $this->composer = app(Composer52::class); }
seems to help.

publish package configuration in Laravel 5.1

After installing correctly the package and defining the provider and the facade, the command for publishing the package configuration php artisan eloquent-oauth:install is not working in my L5.1 project. It says:

[InvalidArgumentException]
There are no commands defined in the "eloquent-oauth" namespace.

Also tried with: php artisan vendor:publish --provider="AdamWathan\EloquentOAuthL5\EloquentOAuthServiceProvider"
which responds: Nothing to publish for tag [].

Is the package ready for Laravel 5.1, or am I doing anything wrong?

Thanks in advance.

Error 500

I don't have much information to relate. I followed the video guide and the github instructions. But when I add a route such as:

Route::get('{provider}/authorize', function ($provider) {
return OAuth::authorize($provider);
});

And try to go to it I get Error 500. I have logging enabled but nothing shows up in the logs or on screen. I tried adding custom exception handler to display more info but that didn't seem to work.

I added debug code inside SocialNorm.php authorize() to see if it was at least being called (since I think that's what the route is ultimately calling) but the line is never reached. All other code on the site works.

Any ideas? Not sure if I'm doing something very stupid or it's some issue with the eloquent-oauth-l5 and maybe Laravel 5.3.

login in with a customised guard

Please Adam, I am trying to authenticate a custom guard, and its not login in, instead redirecting me to the login route. I have another guard called admin and I am trying to use it with that

like doing something like SocialAuth::guard('admin')->login('facebook');

Problem with user has same email address on login

When the user has same email address ex. on facebook or on gmail account, and in the database the email address it's set unique, and the email address exists in DB the login not working correctly.
Gets an error, "Duplicate entry..." because the user already exists..
Any solution?

Creating a nulled UserStore with Laravel 5.2

Problem
It looks like it is trying to pass through an Eloquent User of null in the registerOAuthManager function of EloquentOAuthServiceProvider.

It appears it's unable to create a UserStore it comes back null.

Steps to reproduce

  • larvel new app (5.2)
  • php artisan app:name newapp
  • php artisan make:auth
  • composer require adamwathan/eloquent-oauth-l5
  • php artisan eloquent-oauth:install
  • php artisan migrate
  • Create github developer application
  • Update configs and providers
  • Create routes from Basic Example (https://i.imgur.com/nFivKGB.png)
  • Visit /github/authorize
  • Authorize the developer application
  • Redirect back with code and state and receive the error
Whoops, looks like something went wrong.

1/1
FatalThrowableError in Model.php line 852:
Fatal error: Class name must be a valid object or a string
in Model.php line 852
at Model->belongsTo(null, 'user_id') in UserStore.php line 25
at UserStore->findByIdentity(object(OAuthIdentity)) in Authenticator.php line 48
at Authenticator->getExistingUser('github', object(User)) in Authenticator.php line 27
at Authenticator->getUser('github', object(User)) in Authenticator.php line 18
at Authenticator->login('github', object(User), null) in OAuthManager.php line 24
at OAuthManager->login('github') in Facade.php line 216
at Facade::__callStatic('login', array('github')) in routes.php line 40
at RouteServiceProvider->{closure}('github')
at call_user_func_array(object(Closure), array('provider' => 'github')) in Route.php line 158
at Route->runCallable(object(Request)) in Route.php line 137
at Route->run(object(Request)) in Router.php line 703
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 64
........

Let me know if I'm missing something here, this is my first Laravel project and went to implement social logins, or if I'm being an idiot missing something here.

Problems SQL

I know it sounds very noob, but I can not perform the authentication routines using Controller.

When you try to login with an account that possesses registered email generates an SQL error.

Thanks,

Success!

Laravel 5.2 and Illuminate\Foundation\Composer vs Illuminate\Support\Composer

Hi Adam

Just fyi, and maybe this is catered for already somewhere else but have just upgraded a site to Laravel 5.2 and had to change a line in:

vendor\adamwathan\eloquent-oauth-l5\src\Installation\InstallCommand.php

changed:
use Illuminate\Foundation\Composer
to
use Illuminate\Support\Composer;

Hope that helps someone!

Cheers
m

Twitter

Hi,
Any chance for twitter auth ?

Regards
Anty

how do i make remember me now??

`<?php
namespace App\Http\Controllers;
use App\User;
use SocialAuth;
use Illuminate\Http\Request;
class SocialsController extends Controller
{
    public function auth($provider)
    {
        return SocialAuth::authorize($provider);
    }
    public function auth_callback($provider)
    {
        SocialAuth::login($provider, function($user, $details){
            $user->avatar = $details->avatar;
            $user->email = $details->email;
            $user->name = $details->full_name;
            $user->save();
        });
        // $FBuser = User::find($username);
        // Auth::login($FBuser);
        return redirect('/home');
    }
}`

this is my controller which handles the login process but it doesnt remembers the user. so how do i do it?? i have tried with the commented code but it showed error.

EloquentOAuthServiceProvider not found

Hi, I have successfully implemented eloquent-oauth-l4 on my local machine.
My production server is on a shared host with PHP5.4.37, and so after some false trails, I have managed to install V0.1.2 (before support for PHP5.4 was withdrawn)
I now get this error when I try to 'php artisan dump-autoload' -

{"error":{"type":"Symfony\Component\Debug\Exception\FatalErrorException","message":"Class 'AdamWathan\EloquentOA
uthL4\EloquentOAuthServiceProvider' not found","file":"/home/jc/vendor/laravel/framework/src/Illuminate/Foun
dation/ProviderRepository.php","line":157}}

Have you any ideas to help?

5.1 - Sqlite

Hi,

I followed the documentation and I'm stuck with the following:

SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: users.name (SQL: insert into "users" ("updated_at", "created_at") values (2015-06-27 17:23:57, 2015-06-27 17:23:57))

I tried with the Facebook provider. the authorise method is working, I authorise the App then I'm redirected back as expected...

*I have renamed the Alias to Social (regarding the last issue)

    public function facebookLogin()
    {
        try {
            \Social::login('facebook');

        } catch (ApplicationRejectedException $e) {

        } catch (InvalidAuthorizationCodeException $e) {

        }

        // Current user is now available via Auth facade
        $user = Auth::user();

        dd($user);

    }

Did I miss something?

Thank you :)

cannot get gender from facebook

facebook login is working but cannot get gender.
I am using this code
SocialAuth::login('facebook', function($user, $details) { dd( $details->raw()['gender'] ); });

Appreciate your help

OAuth Facade Conflict?

I followed the instructions exactly for installation of this package and used your route based setup from the video for the authorize and login resources, but I consistently get the following error:

Call to undefined method OAuth::authorize()

Being inside of the routes.php file, I am not inside of a namespace, although I also tried \OAuth::authorize() as well. This is the relevant section of my route file:

Route::get('google/authorize', function() {
    return OAuth::authorize('google');
});
Route::get('google/login', function() {
    return OAuth::login('google', function ($user, $details) {
        dd($details);
    });
});

After banging my head for a bit, I tried renaming the facade alias in app.php to OAuth2 and changed my calls to use that instead, and it worked just fine.

I've confirmed that I do not have any other classes in my project or vendor folder with that same name. Doing a global grep of my project shows that the only class with that name is the facade itself (adamwathan/eloquent-oauth/src/Facades/OAuth.php), but it is namespaced so shouldn't cause a conflict and I don't have anything else with that name listed in my app.php aliases.

I also just tried upgrading my project to 5.1 since it was just released and have the same issue.

And of course, I have run composer du until I am blue in the face just to be sure ;-)

Have you run into this? If so, do you know what would be causing something like that? I can leave my alias as something else, but it would be nice if I could get it to work as intended.

L5 wrapper documentation refer to the wrong exception class

Hi Adams,

just noticed that the wrapper doc still refer to the exception classes inside your package:

use \AdamWathan\EloquentOAuth\Exceptions\ApplicationRejectedException;
use \AdamWathan\EloquentOAuth\Exceptions\InvalidAuthorizationCodeException;

instead of

use SocialNorm\Exceptions\ApplicationRejectedException;
use SocialNorm\Exceptions\InvalidAuthorizationCodeException;

Can we also get timezone?

Facebook gives us the timezone (well, technically the timezone offset) but when I try to access $details->timezone in OAuth::login('facebook', function($user, $details) the timezone isn't there.

Am I missing something obvious?

Registering a user without as provider

Hi Adam

I am a newcomer to Laravel 5 and was wondering if it was possible to use your package to simply register a user without going through any of the providers.

Currently I have the linkedin and facebook logins working smoothly and need to also be able to register and login a user just via their email/username/password.

Am I missing something simple perhaps?

Cheers

M

Tag for Laravel 5.4-support?

Is it possible to tag the latest commit (share -> singleton), then it's possible that I can use the latest tag instead of dev-master commit.

Blank screen

Hi, first i need say thank you for this awesome package.

I'm using Laravel 5.1 fresh installation to test your package.

After authorization (authorization OK), when i'm redirected back to my app and i got a blank screen... nothing happens.

I try use dd() to debug, but always returns a blank screen, can you help-me?

My route

Route::get('facebook/authorize', function() {
    return OAuth::authorize('facebook');
});

Route::get('facebook/login', function() {

    //dd(OAuth::login('facebook'));

    OAuth::login('facebook', function($user, $details) {
        dd($details);
    });
});

Thank you so much

Weird Login Issue - Existing user migrated from google apps

First off, great add-on! It's been working very well up until I moved a domain from one google apps account to a new one. Basically, the domain was a add-on one original google app, not it's a stand alone on it's own google app.

That being said, when a user goes to sign in, they keep getting the following error thrown:

No query results for model [App\User].

At this point, I was able to get some users logged in by doing the following:

  1. User logs into app.
  2. A null user is then created.
  3. Remap oauth_identities empty row to existing user (change user_id)
  4. User signs back in, and has access

Not the prettiest, but seems to work. Of course the last user is not following this process and I cannot get a empty user created, or have them log in.

We are only using Google+ Oauth. I have revoked permission at Google Apps, that did not work. I have deleted the user and his oauth_identities row, I have deleted all session files, cleared cache, and he still cannot log in I'm at wits end. Here is my Auth code:

`
public function handleProviderCallback($provider)
{
try {
SocialAuth::login('google',function($user, $details){

            //check to see if the user has a team email.
            //if($this->teamCheck($details->raw()['email']) == false){
              //  throw new Exception;
            //}

            //explode full name from google
            $name = explode(" ", $details->raw()['name']);

            //check to see if user exists.
            try {
                $userExists = User::where('email', '=', $details->raw()['email'])->first();
            }
            catch(Exception $e){
                dd($e);
            }

            //Very ugly code to save users. Needs to be refactored
            if(!is_null($userExists)){
                $userExists->email        = $details->raw()['email'];
                $userExists->first_name   = $name[0];
                $userExists->last_name    = $name[1];
                $userExists->avatar       = $details->raw()['picture'];
                try{
                    $userExists->save();
                }
                catch(Exception $e){
                    dd($e);
                }
            }
            else{
                $user->email              = $details->raw()['email'];
                $user->first_name         = $name[0];
                $user->last_name          = $name[1];
                $user->roles              = 'N';
                $user->avatar             = $details->raw()['picture'];
                try{
                    $user->save();
                }
                catch(Exception $e){
                    dd($e);
                }
            }

            //check for admin
            if( env('ADMIN_EMAIL') == $details->raw()['email'] ){
                session()->put('is_admin', true);
            }

        });
    } catch (ApplicationRejectedException $e) {
        // User rejected application
    } catch (InvalidAuthorizationCodeException $e) {
        // Authorization was attempted with invalid
        // code,likely forgery attempt
    }
    catch(Exception $e){
        return redirect('auth/login');
    }

`

Odd note, when on my local instance, I was able to create the user and log in with no problem.

Thanks,

Jay

Adding custom provider endpoints

Hi @adamwathan,

Loving the relative ease of this package. Works like a charm for authentication. However, I'm having a bit of trouble trying to put together something that can call different endpoints once the access token is retrieved. What I have so far is the following:

  • A class that extends OAuth2Provider for the website in question, which defines all of the endpoints and contains the HTTP request logic.
  • Another class that extends EloquentOAuthServiceProvider. Its only purpose thus far is to add the new provider to the $providerLookup array.

What I think I need to have done:

  • Extend OAuthManager with a method to return the OAuth2Provider. The extended EloquentOAuthServiceProvider must create an object of this class in registerOAuthManager() instead.

Does that sound about right?

Additionally, will calling OAuthManager::login() trigger a new HTTP request if the access token is already stored in the database?

Thanks.

Error Documentation Github

Hello ,there is an error for a facebook.
$user->name = $details->fullName;
Should be
$user->name = $details->full_name;

Call to undefined method "authorize"

I always getting the error:

    FatalErrorException in routes.php line 19:
    Call to undefined method AdamWathan\EloquentOAuthL5\EloquentOAuthServiceProvider::authorize()

app/Http/routes.php

<?php
...
Route::get('/github/authorize', function() {
    return SocialAuth::authorize('github');
});

config/app.php

    'providers' => [
        ...
        AdamWathan\EloquentOAuthL5\EloquentOAuthServiceProvider::class,
    ],

    'aliases' => [
        ...
        'SocialAuth'=> AdamWathan\EloquentOAuthL5\EloquentOAuthServiceProvider::class,
    ],

I have done the installation via composer. Executed the installation and migration like described in the manual.

ApplicationRejectedException in Request.php

@adamwathan
I have logout through my application normally or without login cancel from soundcloud
i am getting issue ApplicationRejectedException.
in query string => ?error=access_denied&error_description=The+end-user+denied+the+request.?error=access_denied&error_description=The+end-user+denied+the+request.

Logging giving me error on InvalidAuthorizationCode

Hi,

When trying to login with a user I get the following error:
image

this is the code I'm using:

Route::get('auth/authorize/{provider}',  function($provider) {
        return SocialAuth::authorize($provider);
    });
    Route::get('auth/login/{provider}',  function($provider) {
        try {
            SocialAuth::login($provider, function($user, $details) {
                $user->username = $details->nickname;
                $user->name = $details->full_name;
                $user->save();
            });
        } catch (ApplicationRejectedException $e) {
            // User rejected application
            dd('error1');
        } catch (InvalidAuthorizationCodeException $e) {
            // Authorization was attempted with invalid
            // code,likely forgery attempt
            print_r($provider);
            dd($e);
        }

        // Current user is now available via Auth facade
        $user = Auth::user();
        dd($user);

        return $user;
    });

and the follwing is in my config/eloquent-oauth.php

<?php

use App\User;

return [
    'model' => User::class,
    'table' => 'oauth_identities',
    'providers' => [
        'facebook' => [
            'client_id' => env('FACEBOOK_CLIENT_ID'),
            'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
            'redirect_uri' => 'http://portal.latomme-g.be/api/v1/auth/login/facebook',
            'scope' => [],
        ],
        'google' => [
            'client_id' => env('GOOGLE_CLIENT_ID'),
            'client_secret' => env('GOOGLE_CLIENT_SECRET'),
            'redirect_uri' => 'http://portal.latomme-g.be/api/v1/auth/login/google',
            'scope' => [],
        ],
        'github' => [
            'client_id' => env('GITHUB_CLIENT_ID'),
            'client_secret' => env('GITHUB_CLIENT_SECRET'),
            'redirect_uri' => 'http://portal.latomme-g.be/api/v1/auth/login/github',
            'scope' => [],
        ],
        'linkedin' => [
            'client_id' => '12345678',
            'client_secret' => 'y0ur53cr374ppk3y',
            'redirect_uri' => 'https://example.com/your/linkedin/redirect',
            'scope' => [],
        ],
        'instagram' => [
            'client_id' => '12345678',
            'client_secret' => 'y0ur53cr374ppk3y',
            'redirect_uri' => 'https://example.com/your/instagram/redirect',
            'scope' => [],
        ],
        'soundcloud' => [
            'client_id' => '12345678',
            'client_secret' => 'y0ur53cr374ppk3y',
            'redirect_uri' => 'https://example.com/your/soundcloud/redirect',
            'scope' => [],
        ],
    ],
];

This problem exists for me for; Facebook, Google and Github (others I didn't try)

Don't allow soft-deleted users to login

I'm using your package in my app and I'm also using laravel's soft delete (http://laravel.com/docs/5.1/eloquent#deleting-models).

When a soft-deleted user tries to login there's an error:
No query results for model [App\User].

I tried intercepting it with a little bit of code you posted in another issue:

$existing_user = User::where('email', $details->raw()['email'])->first();

if ($existing_user !== null && is_null($existing_user->deleted_at) == false) {
    return view('banned');
}

But that doesn't work because even if I add an else to the if statement and return another view it will still give the error. I am quite of a newbie so apologies if this isn't a real issue, just figured posting wouldn't hurt.

Besides this little encounter I've had no problems with your package, good job!

Laravel 5.2 PHP Artisan Command Line Failure

So I was following the guide on how to setup Laravel 5 with your OAuth library.

However it seems that once I added 'AdamWathan\EloquentOAuthL5\EloquentOAuthServiceProvider' to my providers app config I was no longer able to run the php artisan command. I would be met with this error:
vagrant@homestead:/Code/Laravel/upkeep$ php artisan
[ReflectionException]
Class Illuminate\Foundation\Composer does not exist
vagrant@homestead:
/Code/Laravel/upkeep$

I then dug down to the InstallCommand file and changed
use Illuminate\Foundation\Composer; to use Illuminate\Support\Composer;

I was then able to continue with the install process. ๐Ÿ‘

Ninja edit
Welp. I think quite a lot changed with 5.2. I used php artisan make:auth to start with all the controllers / views. There appears to be big changes from the Laravel 5 repo you have uploaded (from what I can tell, this is actually my first Laravel project ever).

Class hash does not exist

After upgrading to this package rather than the branch in the old project I'm getting this exception. This seems to originate from AuthManager.

Displaying if user is logged in with social vs. Laravel login

I'd like to be able to display a notification like "You are logged in using Facebook" on a profile page. And use that info in if statements as well. For example, they shouldn't be able to change their email address if they're using social login.

How do I check if they have an entry in oauth_identities without manually doing a query? Is there already a way using Auth::?

Exception: Publish package configuration in Laravel 5.2

As in mentioned in #11 , I'm also facing the same issue while publishing the package configuration (after installing package, adding provider and facade)
On running php artisan eloquent-oauth:install, it gives the following error:

[Symfony\Component\Console\Exception\CommandNotFoundException]
There are no commands defined in the "eloquent-oauth" namespace.

Also tried with: php artisan vendor:publish --provider="AdamWathan\EloquentOAuthL5\EloquentOAuthServiceProvider"
which responds: Nothing to publish for tag [].
Am I missing something here?

P.S. I'm new to Laravel

Allow more than one scope

It'd be awesome if you could pass the scope needed to the authenticate function.
I've looked at the code, but I haven't been able to find the place where the scope is passed to the github provider.
Could you point me in the rigth direction?

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.