Как получить доступ к структуре результатов, возвращаемой cfoauth?

Я использую Coldfusion 2021 и Okta. Моя страница входа успешно перенаправляется на страницу входа в Okta, где я могу войти. Когда меня перенаправляют обратно на перенаправление, я получаю одну из двух проблем в зависимости от того, как я его настроил.

Первые проблемы возникают, когда перенаправление — это та же страница, которая содержит тег cfoauth. Код выглядит следующим образом:

логин.cfm

<cfoauth 
   clientid = "xxxxxxxxxxx" scope = "openid profile" authendpoint = "https://loginurl/oauth2/authorize" 
   secretkey = "xxxxxxxxxxx" state = "test" accesstokenendpoint = "https://mydomain/accesstoken.cfm" 
   redirecturi = "https://mydomain/login.cfm" result = "res">

<cfscript>
   session.auth= res;
   writeDump(session);
<cfscript>

В этом случае я получаю следующую ошибку: Failure! Ensure that you have provided valid data for attributes. Просмотр исключения.log на сервере не дает никакой дополнительной информации, кроме номера строки тега cfoauth.

Вторая проблема возникает, когда перенаправление не совпадает с той страницей, которая содержит вызов cfoauth. В этом случае код выглядит следующим образом:

логин.cfm

<cfoauth 
   clientid = "xxxxxxxxxxx" scope = "openid profile" authendpoint = "https://loginurl/oauth2/authorize" 
   secretkey = "xxxxxxxxxxx" state = "test" accesstokenendpoint = "https://mydomain/accesstoken.cfm" 
   redirecturi = "https://mydomain/index.cfm" result = "res">

<cfscript>
   session.auth= res;
<cfscript>

index.cfm


<cfscript>
   writeDump(session);
</cfscript>

Я не могу видеть или редактировать сторону Okta, поэтому не могу предоставить эту информацию здесь, но предполагаю, что она настроена правильно, поскольку я могу войти в систему, и она перенаправляет меня обратно на перенаправление, как и ожидалось. Кажется, в документации указано, что перенаправление должно быть той же страницей, на которой есть тег, но в любом случае я не уверен, что не так.

Socialite Login With Google Account In Laravel 9
Socialite Login With Google Account In Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com.
1
0
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В итоге я решил эту проблему, поэтому, если кому-то это понадобится, моей проблемой была конечная точка моего токена доступа. В моем случае я решил эту проблему, используя следующий тег cfoauth. Это должна была быть конечная точка токена доступа, предоставленная Okta, с перенаправлением, установленным на тот же uri, который содержал тег cfoauth.

<cfoauth clientid = "xxxxxxxxxxx" scope = "openid profile" authendpoint = "https://loginurl/oauth2/authorize" secretkey = "xxxxxxxxxxx" state = "test" accesstokenendpoint = "https://loginurl/oauth2/authorize" redirecturi = "https://mydomain/login.cfm" result = "res">

Другие вопросы по теме