Last active
February 13, 2023 05:21
-
-
Save sunny4381/99a7b5f78e115b825eb9be33e0a3b3af to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SHIRASAGI OAuth 2.0 IdP 機能を利用したサンプルコード | |
# このサンプルでは implicit flow を用います。 | |
# | |
# 実行方法 | |
# bin/rails runner oauth2_sample_with_implicit_flow.rb | |
# ドメイン | |
your_domain = "https://localhost:3551/" | |
# 認可エンドポイントの URL | |
authorize_url = URI.join(your_domain, "/.mypage/login/oauth2/authorize") | |
# SHIRASAGI 管理画面で作成したアプリケーションのクライアントID | |
client_id = ENV.fetch('CLIENT_ID', 'Jfp4HnWFH7Clemq6v09wwiSj') | |
# SHIRASAGI 管理画面で作成したアプリケーションを作成する際に登録したリダイレクト URL | |
redirect_uri = ENV.fetch('REDIRECT_URI', 'http://127.0.0.1/cb') | |
# SHIRASAGI 管理画面で作成したアプリケーションを作成する際に選択した権限 | |
scopes = [] | |
authorize_request = { | |
response_type: "token", | |
client_id: client_id, | |
redirect_uri: redirect_uri, | |
scope: scopes.join(" ") | |
} | |
# コンソールに表示される URL にブラウザでアクセスする | |
puts "#{authorize_url}?#{authorize_request.to_query}" | |
# コンソールに表示される URL にブラウザでアクセスすると、シラサギ側のログイン画面が表示される。 | |
# そして、ログインに成功すると redirect_uri に戻ってくる。 | |
# redirect_uri には access_token というパラメータが含まれているので、記録する | |
access_token = $stdin.readline | |
access_token.strip! | |
# 取得したアクセストークンを用いてユーザーアカウント情報を取得する | |
account_resp = Faraday.new(url: URI.join(your_domain, "/.u/user_account.json")).get do |req| | |
req.headers['Authorization'] = "Bearer #{access_token}" | |
end | |
account_json = JSON.parse(account_resp.body) | |
puts "email=#{account_json['email']}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment