此文分為幾個部分:
[PHP] OPENID CONNECT #0 簡介及取得URL
[PHP] OPENID CONNECT #1 取得ACCESS TOKEN
[PHP] OPENID CONNECT #2 取得USERINFO及PROFILE
[PHP] OPENID CONNECT #3 驗證id_token
[PHP] OPENID CONNECT #4 程式下載及安裝
這篇撰寫安裝的方式。
範例下載
git下載的檔案和目錄:
./oidc_OPENIDconnect_examples
├── doc
├── example
│ └── php
│ ├── callback.php OP回傳之redirect_uri
│ ├── composer.json composer.json 請忽略
│ ├── composer.lock composer.lock 請忽略
│ ├── config.php 基本設定檔
│ ├── idtoken_verify.php 驗證id_token
│ ├── index.php 建立連結
│ ├── i.php 測試WWW是否正確設定
│ ├── library.class.php 需要用到的函數
│ ├── userinfo.php 取得USER INFO
├── README.md
└── spec
./example/php 目錄下就是範例程式
把該目錄下的檔案複製到你的網頁目錄夾(此例 /var/www/html/rp):
# cp oidc_OPENIDconnect_examples/example/php/* /var/www/html/rp
# cd /var/www/html/rp
驗證ID_TOKEN需安裝套件
由於已經有設定 composer.json,只需下指令,如你沒有 composer,請安裝[1]。
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing phpseclib/phpseclib (2.0.6): Loading from cache
- Installing symfony/polyfill-util (v1.4.0): Loading from cache
- Installing symfony/polyfill-php56 (v1.4.0): Loading from cache
- Installing namshi/jose (7.2.3): Loading from cache
phpseclib/phpseclib suggests installing ext-libsodium (SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.)
phpseclib/phpseclib suggests installing ext-mcrypt (Install the Mcrypt extension in order to speed up a few other cryptographic operations.)
Generating autoload files
# ls
callback.php composer.json composer.lock config.php idtoken_verify.php index.php i.php library.class.php userinfo.php vendor
就會把id_token需要的套件安裝完畢,唯一要注意的是,如果你的PHP>=7.0,需要修改原始碼 JWS.php把限制改掉
修改 ./vendor/namshi/jose/src/Namshi/JOSE/JWS.php 把第41-43行註解
使用
1. 修改 config.php
2. 開啟你的網頁http://<IP或網域>/rp,就會看到一個登入連結
祝你使用愉快!
參考資料
[1] composer安裝 安裝php套件管理程式Composer+ Codeignioter3@新精讚