我正在尝试测试我的应用,我正在localhost和heroku上测试它。
我尝试不在我的应用编辑页面的“OAuth2参数”中设置redirect_uri
,所以我想我可以根据主机名动态设置它(localhost:port或myapp.heroku .COM)
但这不起作用......我做错了吗?
问题应该是身份验证的协议。
此身份验证网址请求有效(但我在heroku上的应用不使用https)
https://app.box.com/api/oauth2/authorize?
response_type=code&
client_id=my-client-id&
redirect_uri=https://myapp.herokuapp.com
并且此身份验证网址请求无效,因为Insecure_redirect_uri
错误
https://app.box.com/api/oauth2/authorize?
response_type=code&
client_id=my-client-id&
redirect_uri=http://myapp.herokuapp.com
PS:注意两个网址上的redirect_uri
参数。
答案 0 :(得分:2)
Box要求所有重定向网址在开头都有https
。
唯一的例外(据我所知)是指向本地主机的任何网址,即http://localhost:5000
。
我不明白为什么https://app.box.com/api/oauth2/authorize?response_type=code&client_id=qwerty&redirect_uri=https://myapp.herokuapp.com
是不可接受的;我使用它并且工作正常,我只是将'/auth
作为我的回调网址来处理任何身份验证:
get '/auth'
用于在URL查询和
post '/auth
用于捕获帖子正文中的标记
所以我的重定向网址如下:https://myapp.herokuapp.com/auth
答案 1 :(得分:0)
如果您在OAuth2配置中指定了一个,那么您要么不发送参数,而Box知道重定向的位置。或者你必须在你的redirect_uri param中发送那个确切的一个。
如果你没有在Box的开发者控制台上的OAuth2配置参数中设置一个,那么你可以指定你想要的任何redirect_uri参数。