需要あるの?
あんまりない気がしますが…。Auth0公式にはColdFusionのサンプルなんかないし、せっかくなのでPHPサンプルソースを参考に同じような感じに仕上げてGitHubに公開しました。
https://github.com/namitan/cf_auth0_sample
こんなかんじ
login.cfm
<CFSET domain = Application.AUTH0_DOMAIN>
<CFSET client_id = Application.AUTH0_CLIENT_ID>
<CFSET client_secret = Application.AUTH0_CLIENT_SECRET>
<CFSET redirect_uri = Application.AUTH0_CALLBACK_URL>
<CFSET audience = Application.AUTH0_AUDIENCE>
<CFIF audience eq "">
<CFSET audience = "https://#domain#/userinfo">
</CFIF>
<CFSET auth0 = createObject("component", "Auth0").init({
'domain' : domain,
'client_id' : client_id,
'client_secret' : client_secret,
'redirect_uri' : redirect_uri,
'audience' : audience,
'scope' : 'openid profile',
'persist_id_token' : true,
'persist_access_token' : true,
'persist_refresh_token' : true
})>
<CFSET auth0.login()>
PHPのサンプルに似た感じで呼び出すように作ってあります。API叩いたりとかはAuth0.cfcにまとめてあります。PHPのAuth0 SDKは中身見てないので、全然違うことしてるかもしれませんが…。
クライアントIDとかはApplication.cfcに定義がありますので書き換えて使ってください。
Application.cfc
<CFFUNCTION name="onApplicationStart">
<CFSET Application.AUTH0_CLIENT_ID = "your client id">
<CFSET Application.AUTH0_DOMAIN = "yourdomain.auth0.com">
<CFSET Application.AUTH0_CLIENT_SECRET = "your client secret">
<CFSET Application.AUTH0_CALLBACK_URL = "http://127.0.0.1:8500/">
<CFSET Application.AUTH0_AUDIENCE = "">
</CFFUNCTION>
いきさつ
ちょっとしたアプリを思いついたので放置気味のVPSで動かしてみようかなと思ったんですが、やっぱり認証は入れなきゃだよなあと調べてみたらAuth0がなんだかサクッといい感じにできそうだということで挑戦してみたのでした。
認証については実装してみてなんとなく概要はわかったかなというところ。これからもう少し学びたいです。
関係ないけど、CFMLのシンタックスハイライトがないのでこれまでhtml
を使ってましたが、試しにphp
を使ってみたらすっきりしていてこっちのが見やすい。。。
追記
Luceeでも動作確認しましたので、タグ追加しました。