小编San*_*osh的帖子

Shopify app登录问题

我已经在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.您可以在测试商店中安装该应用程序,并尝试从测试商店的管理页面登录该应用程序.

ruby-on-rails shopify

4
推荐指数
1
解决办法
1744
查看次数

编写这个if子句的更好/更清晰的方式

以下是我的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)

但我认为可能还有更好的方法.

ruby refactoring ruby-on-rails ruby-on-rails-3

1
推荐指数
1
解决办法
121
查看次数