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


php,docker,dlaravel

A brief introduction to the phpenv container environment I built

I don't have time to shoot an introduction video, so I'll just grab some pictures and introduce the container environment deviny/phpenv I use. https://github.com/DevinY/phpenvphpenv can be regarded as an evolutionary version of my previous D-Laravel open source project, conceptually extending the use of many Dlaravel operation methods. The update of the container tends to be controlled by the user to build his own image, so I am not very good at changing the version number. In fact, the php version number of D-Laravel seems to have not been changed for a long time:p

dlaravel,docker

D-Laravel learning three stages

Chat about the three stages of using D-Laravel, why use D-Laravel. Because the configuration files used by D-Laravel are quite simple, it is very suitable for beginners of Docker to learn, And users who do not know how to use Docker can also use the two commands ./console and ./create to create a project.

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?