Doorkeeperの認証で使われるtokenを取得
doorkeeprの処理のなかで削除済のユーザのステータスが取りたくて、tokenを取得できるかやってみました。
イレギュラーアクセス -> tokenが取れない。
通常のアクセス -> tokenが取れる。ユーザがひける。
削除済または退会済みユーザへのアクセス -> tokenが取れる。ユーザがひけない。
って感じでしょうか?
下記のようにしたら取れました。
あとはこれをうまくつかってerrorとかで削除済のレスポンスを返す感じですね。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| # frozen_string_literal: true
require 'doorkeeper/grape/helpers'
module V1
class Root < Grape::API
helpers Doorkeeper::Grape::Helpers
before do
authorization_request = Doorkeeper::Grape::AuthorizationDecorator.new(request)
# これでrequestからtokenが取れる
token = Doorkeeper::OAuth::Token.from_request(authorization_request, *Doorkeeper.configuration.access_token_methods)
# そのトークンを使ってユーザのトークンが取れる。
access_token = Doorkeeper::AccessToken.by_token(token)
doorkeeper_authorize!
end
mount Users
end
end
|