(ctx context.Context, _ http.ResponseWriter, r *http.Request, verifier string)
| 1256 | } |
| 1257 | |
| 1258 | func (s *defaultStrategy) verifyDevice(ctx context.Context, _ http.ResponseWriter, r *http.Request, verifier string) (_ *flow.Flow, err error) { |
| 1259 | ctx, span := trace.SpanFromContext(ctx).TracerProvider().Tracer("").Start(ctx, "DefaultStrategy.verifyDevice") |
| 1260 | defer otelx.End(span, &err) |
| 1261 | |
| 1262 | f, err := flow.DecodeAndInvalidateDeviceVerifier(ctx, s.r, verifier) |
| 1263 | if err != nil { |
| 1264 | return nil, err |
| 1265 | } |
| 1266 | |
| 1267 | store, err := s.r.CookieStore(ctx) |
| 1268 | if err != nil { |
| 1269 | return nil, err |
| 1270 | } |
| 1271 | |
| 1272 | cookieNameDeviceCSRF := s.r.Config().CookieNameDeviceCSRF(ctx) |
| 1273 | if err := validateCSRFCookie(ctx, r, s.r.Config(), store, cookieNameDeviceCSRF, f.DeviceCSRF.String()); err != nil { |
| 1274 | return nil, err |
| 1275 | } |
| 1276 | |
| 1277 | return f, nil |
| 1278 | } |
| 1279 | |
| 1280 | func (s *defaultStrategy) getDeviceVerificationPath(ctx context.Context) *url.URL { |
| 1281 | return urlx.AppendPaths(s.r.Config().PublicURL(ctx), deviceVerificationPath) |
no test coverage detected