by Devin Yang

建立于: 2年前 ( 更新: 2年前 )

Laravel提供了相当多好用的Package,像Passport就是其中之一,
当网站需要自架OAuth2验证主机时,真的是省时省力。
本站为例,因为采前后台分离机制(有两个不同的Laravel项目),我都透过前台的WEB进行验证。
基本上,我还有很多其他不同的项目,也都靠Laravel提供的OAuth2就搞定跨域验证。

当我前台WEB登录的情况下,开其他的项目就能直接登录了,
例如本站的发文后台及聊天室都采自家用的OAuth2进行验证。

讲这么多,来看我最常下的命令如下,早期Laravel还提供WEB UI组件,后来好像没了,因该发觉好像不需要了吧。😅

php artisan passport:client

 Which user ID should the client be assigned to?: (这里输入使用者编号)
 > 9

 What should we name the client?: (新的项目名称,登录时会显示给使用者这名称的App需要验证,基本我都直接AutoSubmit@@)
 > 新项目

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


New client created successfully.
Client ID: n <这是Client的编号>
Client secret: <密密>

看到上面最后的画面-,如果常建OAuth验证的人应该很熟悉的感觉吧,像是脸书的OAuth验证或是Google的OAuth验证。
说白了,装了Passport我们就有自己的OAuth2验证主机了,而不是去始用Facebook或Google的。
我的聊天室主机就是大混合型,支持不同的验证,登录后就能聊天。

以下分享我.env中的命名方式,您会发觉,几乎所有的env差不多如出一辙,就像新兄弟..:p
ID、SECRET及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


如果您也尝试装Laravel的passport,目前新版的Laravel安装默认会使用sanctum,记得调回api。

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


关於Laravel Passport详细安装及设置,还是请看官网的说明书吧:
https://laravel.com/docs/9.x/passport

 

Tags: laravel oauth2

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


laravel storage,sftp

用tinker测试Laravel的sftp自定义Storage::path及Storage::url

今天来测测Laravel上使用sftp driver,如果您没用过,快来看看我测试的结果顺便提一下,我们在Laravel的tinker环境中,进行Storage的功能很是方便的,不管是local或是远程。调整完设置后,记得离开再进入。

laravel

Facebook的测试用户

是否有人跟我一样网站用OAuth进行网站的使用者登录,在Facebook的开发者页面有一个「测试用户」, 可以用来测试Facebook的功能是否正常, 因为网站搬家到Google的GCE时,不知何故,我居然在Laravel的User的model中$fillable的array内多贴了一个~, 一般情况下进程都正常运作,但是在新使用者登录时,就出错给你看。 一直听到有人说,没法登录这个网站评论,我想说,我都很正常呀。@@ 今天使用测试用户测试后,哈,发觉我的网站上的登录功能根本坏很久了。

d-laravel, docker, laravel, docker-compose

D-Laravel v1.0.0 release变更说明

为了让container可以被更灵活运用,D-Laravel释出v1.0.0版了,此版本为不向下相容变更。 https://github.com/DevinY/dlaravel/releases/tag/v1.0.0 如果您使用为 v1.0.0 之前,您需修改Laravel项目的.env档,DB_HOST=127.0.0.1变更为DB_HOST=db 如果您有自定义的docker-compose-custom.yml档....more