by Devin Yang
(This article was automatically translated.)

Published - 3 years ago ( Updated - 3 years ago )

Laravel provides quite a few useful packages, Passport is one of them,
When the website needs to set up its own OAuth2 verification host, it really saves time and effort.
This site is an example, because the front-end and back-end separation mechanism is adopted (there are two different Laravel projects), and I verify through the front-end WEB.
Basically, I have many other different projects, and they all rely on OAuth2 provided by Laravel to handle cross-domain authentication.

When I log in to the WEB at the front desk, I can log in directly by opening other projects.
For example, the posting background and chat room of this site are all authenticated by home OAuth2.

Having said so much, let’s look at the commands I most often issue as follows. In the early days, Laravel also provided WEB UI components, but it seems to be gone later, because it seems that it is unnecessary. 😅

php artisan passport:client

 Which user ID should the client be assigned to?: (Enter the user ID here)
 >9

 What should we name the client?: (The new project name will be displayed to the user when logging in. The app with this name needs to be verified. Basically, I directly AutoSubmit@@)
 > New project

 Where should we redirect the request after authorization? [https://www.ccc.tc/auth/callback]:
 > https://app.ccc.tc/auth/ccc/callback


New client created successfully.
Client ID: n 
Client secret: 

See the last screen above -, if you often build OAuth verification, you should be familiar with it, like Facebook's OAuth verification or Google's OAuth verify.
To put it bluntly, with Passport installed, we have our own OAuth2 verification host instead of using Facebook or Google.
My chat room host is a large hybrid type, which supports different verifications, and can chat after logging in.

Let me share the naming method in my .env, you will find that almost all envs are almost the same, just like new brothers...:p
ID, SECRET and CALLBACK.

#CCC OAuth
CCC_OAUTH_SERVER=https://www.ccc.tc
CCC_CLIENT_ID=
CCC_SECRET=
CCC_CALLBACK_URL=${APP_URL}/auth/ccc/callback

#Line Notify
LINE_NOTIFY_CLIENT_ID=
LINE_NOTIFY_SECRET=
LINE_NOTIFY_CALLBACK_URL=${APP_URL}/auth/line/notify/callback

#BOT
LINE_CHANNEL_ID=
LINE_CHANNEL_SECRET=
LINE_CALLBACK_URL=${APP_URL}/auth/line/callback

FACEBOOK_CLIENT_ID=
FACEBOOK_SECRET=
FACEBOOK_CALLBACK_URL=${APP_URL}/auth/facebook/callback

GITHUB_CLIENT_ID=
GITHUB_SECRET=
GITHUB_CALLBACK_URL=${APP_URL}/auth/github/callback

GOOGLE_CLIENT_ID=
GOOGLE_SECRET=
GOOGLE_CALLBACK_URL=${APP_URL}/auth/google/callback


If you also try to install Laravel's passport, the current new version of Laravel will use sanctum by default, remember to call back the api.

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});


For detailed installation and settings of Laravel Passport, please refer to the manual on the official website:
https://laravel.com/docs/9.x/passport

* 100043*

Tags: laravel oauth2

Devin Yang

Feel free to ask me, if you don't get it.:)

No Comment

Post your comment

Login is required to leave comments

Similar Stories


docker, tinkerwell, tinker, laravel

Application of Tinkerwell and docker environment

In fact, I don't use Tinkerwell recently because it keeps costing me money to update. If you want to test the direct ssh host, it’s done, isn’t it?

laravel

Customize your own helper in laravel

In the Laravel framework, a considerable number of PHP functions (php functions), called helpers, are included. https://laravel.com/docs/5.6/helpers So how do we customize our own helper in Laravel? It's actually quite simple.. Just add files in autoload in composer.json.

laravel,trait,php

My Browser Trait, webp image file support function detection and whether it is a mobile phone detection

I believe that many people are familiar with PHP trait, because Laravel can be seen everywhere, but I still write it and share it with those who are destined. PHP trait allows two different CLASS to use the same method. It not only reduces the complexity, but also allows the code to be reused. So it should be very convenient to put a Browser series function on Laravel's ViewServiceProvider 😝