我已经在Shopify应用程序上从遗留系统切换到oauth2身份验证.现在,每当我从商店管理页面(我的应用程序 - >应用程序)访问应用程序时,它都会将我重定向到登录页面,而不是直接将商店记录到应用程序中(就像之前一样).
下面是finalize方法中的代码.
if response = request.env['omniauth.auth']
sess = ShopifyAPI::Session.new(params['shop'], response['credentials']['token'])
ShopifyAPI::Base.activate_session(sess)
session[:shopify] = sess
flash[:notice] = "Logged in"
redirect_to return_address
session[:return_to] = nil
else
flash[:error] = "Could not log in to Shopify store."
redirect_to :action => 'index'
end
Run Code Online (Sandbox Code Playgroud)
当用户从商店管理页面访问应用程序时,它在请求中没有request.env ['omniauth.auth']并被重定向到登录页面,因为当我们有遗留身份验证机制时不是这种情况.
应用网址是www.orderlyprint-staging.herokuapp.com.您可以在测试商店中安装该应用程序,并尝试从测试商店的管理页面登录该应用程序.
以下是我的UsersController操作代码.我有一个current_user会话对象,如果没有传递给动作,我想使用当前用户的ID.
def show
id = params[:id]
id = current_user.id if id.blank?
@user = User.find(id)
end
Run Code Online (Sandbox Code Playgroud)
我这样做是为了最终我可以拥有可以编辑其他用户信息的管理员.这就是我不使用的原因@user = User.find(current_user.id).
思考/建议吗?我可能也可以做一个三元运算符
params[:id].present? ? id = params[:id] : id = current_user.id
Run Code Online (Sandbox Code Playgroud)
但我认为可能还有更好的方法.